覆盖jquery验证插件中的函数

时间:2009-08-02 04:06:17

标签: javascript jquery validation forms plugins

我使用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({. . .});

任何指针?

1 个答案:

答案 0 :(得分:2)

您可以使用focusInvalid选项禁用第一个无效输入的选择。然后,您可以使用invalidHandler选项设置自定义函数,以选择表单中的第一个元素。 invalidHandler选项是插件在提交无效表单时调用的函数。

以下示例:

$("form#user-register").validate({
     invalidHandler: function(form, validator){
         $(validator.invalidElements()[0]).focus();
     },
     focusInvalid:false
});