Проверка jQuery - метод проверки подлинности ядра с использованием перезаписи
Я использую плагин 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
}
});
Похоже, что требуемый для ядра метод по-прежнему неповрежден и вызван, даже если я добавляю метод с тем же именем. Нужно ли вообще полностью перезаписать метод основного правила?
Ответы
Ответ 1
Вы не переопределяете его, но добавляете к нему еще один метод. Чтобы отменить его, попробуйте следующее:
$.validator.methods.required = function(value, element, param) {
console.log("required", element);
return someCondition && value != null;
}
Ответ 2
Вы можете использовать $.extend
для этого:
$.extend($.validator, {
required: function(value, element) {
console.log("required", element);
return someCondition && value != null;
}
})