javascript - 添加到浏览器的内置表单验证

标签 javascript html forms

我正在为我们的网站创建电子邮件表单。我建立了表格 using HTML5 and CSS利用 browsers' built-in validation (使用 this shim 以避免兼容性问题)。现在我想添加一个“确认您的电子邮件地址”字段,除非它与“输入您的电子邮件地址”字段匹配,否则不应将其标记为有效。

我编写了一些 JavaScript 来比较这两个字段。 JavaScript 有没有办法将字段标记为浏览器内置验证的有效/无效?或者我是否需要切换到第三方验证插件才能获得此功能?

最佳答案

找到the answer就在我发布问题之后。您调用<element>.setCustomValidity()在字段上,传入一个空字符串以将该字段设置为有效。如果无效,您可以传入一个字符串并说明原因。

这是我的代码:

$('#emailConfirmation').on('keyup', function() {
    if ($('#emailConfirmation').val() == $('#email').val()) {
        $("#emailConfirmation")[0].setCustomValidity("");
    } else {
        $("#emailConfirmation")[0].setCustomValidity("Check that you've typed your email address the same way in both places.");
    }
});

这里又是没有 jQuery 的情况:

document.getElementById('emailConfirmation').onchange = function() {
    if (document.getElementById("emailConfirmation").value == document.getElementById("email").value) {
        document.getElementById("emailConfirmation").setCustomValidity("");
    } else {
        document.getElementById("emailConfirmation").setCustomValidity("Check that you've typed your email address the same way in both places.");
    }
}

关于javascript - 添加到浏览器的内置表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33265066/

相关文章:

javascript - 使用 promise 中的 Prop

javascript - 尝试从文本框中获取数据并将其插入数据库

javascript - jQuery zClip 无法在 Chrome 和 IE9 的 UI 对话框中工作(在 FireFox 中工作)

html - 设置 div 内容对齐的问题

asp.net - 在查询字符串中传递值以自动填充表单上的字段

php - Form Action 的 PHP 文件不工作

javascript - 在 Angular JS 中使用 $parse

JavaScript startsWith 和 endsWith

javascript - 在 JavaScript 中获取 ul 并附加 li

javascript - 我想制作一个仅提交一次的表单的 JavaScript 自动提交