覆盖jqueryvalidation插件中的函数

我正在使用jquery表单validation插件来validation长表单。 如果用户提交的表单包含多个无法validation的字段,则光标将返回到未通过的最后一个字段。 相反,我希望将光标返回到validation失败的表单中的第一个字段。 而不是修改插件,我想覆盖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 });