Контейнер ошибок DIV с общим сообщением об ошибке отображается автоматически, поскольку он указан в значениях по умолчанию для проверки:
jQuery.validator.setDefaults({
........
errorContainer: ".valerror",
........
});
В этом контейнере есть только общее сообщение "Проверьте свои входные данные", и он не должен содержать сообщения, относящиеся ккаждый вход управления.Когда я нажимаю кнопку «Отправить» без заполнения формы, помечаются недействительные поля и отображается общее сообщение об ошибке.Когда поля заполнены, они не отмечены, но общее сообщение об ошибке остается.
Теперь проблема: мне нужно скрыть контейнер, когда все поля становятся действительными (без повторного нажатия кнопки отправки).
Я пытался
unhighlight: function(element, errorClass) {
if (this.numberOfInvalids() == 0) {
$(".valerror").hide();
}
},
, но этот блок кода полностью нарушает нормальное функционирование механизма проверки, потому что он ничего не знает о "невыделенном".
Принятый ответ
Я скопировал обработчики «unhighlight» и «highlight» из исходного кода плагина проверки JQuery в мой код, и функциональность проверки была восстановлена.
highlight: function(element, errorClass, validClass) {
// default handling
if (element.type === 'radio') {
this.findByName(element.name).addClass(errorClass).removeClass(validClass);
} else {
$(element).addClass(errorClass).removeClass(validClass);
}
// custom handling
$("#errnum").html(this.numberOfInvalids());
},
unhighlight: function(element, errorClass, validClass) {
// default handling
if (element.type === 'radio') {
this.findByName(element.name).removeClass(errorClass).addClass(validClass);
} else {
$(element).removeClass(errorClass).addClass(validClass);
}
// custom handling
$("#errnum").html(this.numberOfInvalids());
},
Зная количество ошибок проверкиОстальное помогло мне выяснить, что контейнер ошибок автоматически скрывается плагином валидации JQ и что проблема заключалась в некоторых зависимых ведомых SELECT, которые не выполняли повторную проверку при смене главных SELECT (но выделение было удалено из ведомых).