我有一个使用jQuery验证的表单,使用不显眼的验证来声明规则。目前我正在使用默认提交行为,其中在提交表单之前没有模糊验证(验证表单中的每个字段),之后后续模糊仅验证模糊字段。
我想更改此行为,以便在提交后,模糊单个字段会重新验证整个表单,以便错误摘要保留在屏幕上,直到每个问题都得到解决。提交前的行为应保持不变。
我已经尝试了基于其他SO答案的以下onfocusout
方法,但没有运气:
onfocusout: function(element, event) {
$(element).valid();
}
和
onfocusout: function(element, event) {
this.element(element);
}
答案 0 :(得分:1)
this.element(element)
和$(element).valid()
都用于触发单个元素的验证。在您的情况下,由于您尝试在.validate()
或.setDefaults()
方法的选项中应用此方法,因此您无法使用.valid()
,因为它可能会触发无限递归。
离开.element()
。但是,as per the docs,您只能在单个字段上使用它,而不是整个表单。
如何在字段模糊上验证整个表单,而不仅仅是模糊字段
我想改变这种行为......模糊单个字段会重新验证整个表单
解决方案是编写附加到所有相关输入元素的外部blur
事件处理程序,并触发附加到表单的.valid()
方法。编辑此通用示例中的选择器,以适用于您的特定表单。
$('#myform input[type="text"]').on('blur', function() {
$('#myform').valid(); // <- trigger validation on entire form
});
$('#myform input[type="text"]')
选择#myform
$('#myform') selects the
形式based on
= ID&#34; myForm的&#34;`