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

Tom*_*ker 14 validation jquery

我正在使用jQuery Validation插件.

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

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

    return someCondition && value != null;
}, "This is is required.");
Run Code Online (Sandbox Code Playgroud)

然而,当表单被验证时,我看到"required"每个元素打印两次意味着函数被调用两次.只要我将方法名称更改为"myRequired"并添加以下类规则,该函数就会被调用一次.

$.validator.addClassRules({
    required : {
        myRequired: true
    }
});
Run Code Online (Sandbox Code Playgroud)

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

Her*_*ral 22

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

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

    return someCondition && value != null;
}
Run Code Online (Sandbox Code Playgroud)