好的,所以我得到jQuery Validate is opinionated关于何时(不)在blur
上验证:
在字段被标记为无效之前,验证是懒惰的:在第一次提交表单之前,用户可以通过字段进行选项卡而不会收到恼人的消息 - 在实际有机会之前,他们不会被窃听输入正确的值
有没有办法覆盖这种行为?我希望每当失去焦点时都要验证每个字段,而不仅仅是在出现错误之后。
答案 0 :(得分:14)
jQuery验证是"懒惰"默认验证。这意味着,在第一次单击提交之前,从字段移动到字段时会忽略大部分验证。
您要求"渴望"验证,因此只需使用自定义函数覆盖onfocusout
默认值...
$('#yourForm').validate({
// rules, options, etc.,
onfocusout: function(element) {
// "eager" validation
this.element(element);
}
});
文档:http://jqueryvalidation.org/validate/#onfocusout
其他参考:https://stackoverflow.com/a/28114269/594235
默认onfocusout
功能:
onfocusout: function(element) {
// "lazy" validation by default
if (!this.checkable(element) && (element.name in this.submitted || !this.optional(element))) {
this.element(element);
}
},