我正在使用jquery form validation plugin来验证长格式。如果用户提交的表单包含多个无法验证的字段,则光标将返回到最后一个未通过的字段。相反,我希望光标以验证失败的形式返回到第一个字段。我不想重写插件,而是要覆盖focusInvalid,它嵌套在“ prototype:{...}”中:
focusInvalid: function() {
if( this.settings.focusInvalid ) {
try {
$(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(":visible").focus();
} catch(e) {
// ignore IE throwing errors when focusing hidden elements
}
}
},
我尝试在以下代码中添加自己的focusInvalid版本,但无法使其正常工作:
$("form#user-register").validate({. . .});
有指针吗?
最佳答案
您可以使用focusInvalid
选项禁用对第一个无效输入的选择。然后,您可以使用invalidHandler
选项设置一个自定义函数,该函数选择表单中的第一个元素。 invalidHandler
选项是插件在提交无效表单时调用的函数。
下面的例子:
$("form#user-register").validate({
invalidHandler: function(form, validator){
$(validator.invalidElements()[0]).focus();
},
focusInvalid:false
});