我使用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({. . .});
任何指针?
答案 0 :(得分:2)
您可以使用focusInvalid
选项禁用第一个无效输入的选择。然后,您可以使用invalidHandler
选项设置自定义函数,以选择表单中的第一个元素。 invalidHandler
选项是插件在提交无效表单时调用的函数。
以下示例:
$("form#user-register").validate({
invalidHandler: function(form, validator){
$(validator.invalidElements()[0]).focus();
},
focusInvalid:false
});