【发布时间】:2015-04-08 17:24:25
【问题描述】:
好的,我知道jQuery Validate is opinionated 关于何时(不)在blur 上进行验证:
在一个字段被标记为无效之前,验证是惰性的:在第一次提交表单之前,用户可以在字段之间切换而不会收到烦人的消息——他们在有机会实际输入之前不会被窃听正确的值
有没有办法覆盖这种行为?我希望每个字段在失去焦点时都得到验证,而不是在出现错误之后。
【问题讨论】:
好的,我知道jQuery Validate is opinionated 关于何时(不)在blur 上进行验证:
在一个字段被标记为无效之前,验证是惰性的:在第一次提交表单之前,用户可以在字段之间切换而不会收到烦人的消息——他们在有机会实际输入之前不会被窃听正确的值
有没有办法覆盖这种行为?我希望每个字段在失去焦点时都得到验证,而不是在出现错误之后。
【问题讨论】:
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);
}
},
【讨论】: