使用函数而不是模式的 HTML5 输入验证

标签 html forms validation

我有一个表单,其中一些输入(如电子邮件)通过 HTML5 中的正则表达式进行验证。 我需要验证无法使用模式的其他输入。我需要查看数据库并查找重复项。我可以通过调用一些函数而不是使用模式来验证吗?

我可以通过调用某个函数来验证用户键入内容,但我的最终目标是实现 UI 一致性。因为电子邮件输入是使用模式和正则表达式验证的,所以 UI 是由浏览器创建的,所以我在验证无法使用正则表达式的其他字段时使用相同的 UI。

最佳答案

是的,这是可能的!用setCustomValidity .

您只需要获取输入元素(通过回调或 document.getElementBy...)并调用

element.setCustomValidity('message here')

如果输入有效,可以调用

element.setCustomValidity('')

清除错误信息。

例如:

<input name='email' onchange='checkEmail(this)'></input>

然后定义checkEmail...

function checkEmail(element) {
    ajaxCallToServer(element.value, function callback(hypotheticalResponse) {
        if (hypotheticalResponse.isOk) {
            element.setCustomValidity('');
        } else {
            element.setCustomValidity('Sorry that email is already taken!');
        }
    });
}

关于使用函数而不是模式的 HTML5 输入验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27624606/

相关文章:

基于属性之一的 JSON 模式 anyOf 验证

c++ - 处理 Qt5 中 QRegularExpressions 中的重音字母

javascript - ExtJs 表单验证

html - 如何使悬停在表格上不影响其他 div?

css - 在悬停时显示 DIV - 自动溢出

PHP 表单发布到远程 FTP 上的 TXT 文件

javascript - 在浏览器中提交 POST 后重新加载页面

javascript - css 工具提示位置不固定

javascript - 单击后如何使启动页面div淡出

javascript - 当用户完成输入或使用 jQuery 离开文本字段时,如何从文本字段中获取值?