我试图了解为什么我无法根据 HTML5 验证显示浏览器验证错误消息。
我的标记中有一个要验证的字段,以及一个调查其有效性的链接,以便知道是否在点击时触发。值得注意的是,这不在表单中,从阅读HTML5 规范来看,我不清楚这是否是一个问题。当然,我可以对表单外的字段使用 checkValidity 方法这一事实对我来说是值得一看的。
HTML
<input type="email" id="email" required="required">
<a id="link" href="some_external_link" target="_blank">Do the thing</a>
Javascript/JQuery
$("#link").on("click", function(event) {
var email = $('#email')[0];
if (!email.checkValidity()) {
event.preventDefault();
}
});
从我目前看到的行为来看,当我将其放入无效的电子邮件地址并尝试单击链接时,我希望这会(基于规范)触发一个“简单事件”,正如我明白了吧,是浏览器错误信息显示必须挂钩的。
但相反,不会出现验证消息。验证确实失败并且阻止了链接跟踪,如果我填写有效的电子邮件,则相反。我是否遗漏了有关如何触发或处理事件的信息?
还有其他答案涉及在该字段周围创建一个表单和提交按钮,这将是我的最后手段,但这是获得所需功能的许多额外无意义的噪音,我想了解我的根本原因我看到了。