我正在使用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
}
});
即使我添加了一个具有相同名称的方法,似乎核心所需的方法仍然完好无损并被调用。反正完全覆盖核心规则方法吗?
答案 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;
}
})