У JQuery UI Accordion возникла проблема с ненавязчивой проверкой JQuery

У меня есть поля данных на нескольких панелях Accordion, и только после заполнения обязательных полей на ВСЕХ панелях пользователь может отправить заявку. Кажется, что JQuery Unobtrusive Validation не проверяет поля на свернутых панелях, где стиль "display:none", здесь я не спрашиваю о проверке JQuery, которая на самом деле казалась способной проверить скрытые поля с правильным значением по умолчанию, это о ненавязчивой валидации.

Вот мои примеры jsfiddle: первый пример использует ненавязчивую проверку JQuery, второй пример просто использует проверку JQuery.

 $.validator.setDefaults({ ignore: [] });

 $.validator.setDefaults({ ignore: [] }); 

В этих примерах все 4 поля на первой панели являются обязательными, а 3 верхних на второй панели обязательны.

Приведенный выше код может работать для проверки JQuery (по крайней мере, в FF), но не для ненавязчивой проверки JQuery, следующий код не помог: $.validator.setDefaults({ ignore: ""}); Я полагаю, мы могли бы изменить стиль "показ: нет" свернутой панели на что-то другое и снова подтвердить, что это немного хакерски.

1 ответ

Решение

У меня была похожая проблема сегодня с ненавязчивой валидацией и начальной загрузкой аккордеона. Это сработало для меня:

$(function () {
     var formValidator = $('form').validate();
     formValidator.settings.ignore = ""; // validate hidden fields
});

Вот пример вашего первого примера с внесенными изменениями. Примечание: я также закомментировал вызов для проверки в функции отправки.

Другие вопросы по тегам