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

时间:2011-02-04 23:48:03

标签: jquery validation

我正在使用jQuery Validation插件。

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

$.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
    }
});

即使我添加了一个具有相同名称的方法,似乎核心所需的方法仍然完好无损并被调用。反正完全覆盖核心规则方法吗?

2 个答案:

答案 0 :(得分:21)

你没有覆盖它,而是添加另一种方法。要覆盖它,请尝试以下方法:

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

    return someCondition && value != null;
}

答案 1 :(得分:1)

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

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