jQuery验证-覆盖核心验证方法

jQuery验证-覆盖核心验证方法,jquery,validation,Jquery,Validation,我正在使用jQuery验证插件 我已覆盖所需规则,因为我的规则取决于某些自定义条件,如下所示: $.validator.addMethod("required", function(value, element) { console.log("required", element); return someCondition && value != null; }, "This is is required."); 然而,当表单被验证时,我看到每个元素都会打印

我正在使用jQuery验证插件

我已覆盖所需规则,因为我的规则取决于某些自定义条件,如下所示:

$.validator.addMethod("required", function(value, element) {
    console.log("required", element);

    return someCondition && value != null;
}, "This is is required.");
然而,当表单被验证时,我看到每个元素都会打印两次
“required”
,这意味着函数会被调用两次。只要我将方法名更改为
“myRequired”
,并添加以下类规则,函数就会按原样调用一次

$.validator.addClassRules({
    required : {
        myRequired: true
    }
});

看起来,即使我添加了一个具有相同名称的方法,所需的核心方法仍然完好无损并被调用。是否要完全覆盖核心规则方法?

您不是在覆盖它,而是在其中添加另一个方法。要覆盖它,请尝试以下操作:

$.validator.methods.required = function(value, element, param) {
    console.log("required", element);

    return someCondition && value != null;
}

您可以使用
$.extend
执行此操作:

$.extend($.validator, {
    required: function(value, element) {
        console.log("required", element);
        return someCondition && value != null;
    }
})

你用的是哪个验证插件。我用的是jQuery验证插件。Tom,链接总是有用的,有很多“jQuery验证”插件。不过我想你用的是这个@是的,你有任何例子或链接吗?