У 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
});
Вот пример вашего первого примера с внесенными изменениями. Примечание: я также закомментировал вызов для проверки в функции отправки.