jQuery Validate - включить проверку для скрытых полей

186

В новой версии jQuery плагин проверки 1.9 по умолчанию проверка скрытых полей игнорируется . Я использую CKEditor для поля ввода textarea, и оно скрывает поле и заменяет его на iframe. Поле есть, но проверка скрытых полей отключена. С плагином валидации версии 1.8.1 все работает как положено.

Поэтому мой вопрос заключается в том, как включить проверку скрытых полей с помощью плагина v1.9 validation.

Этот параметр не работает:

$.validator.setDefaults({ ignore: '' });
шаман
источник
1
Смотрите также stackoverflow.com/questions/7952181/...
goodeye
Ссылка для «проверки скрытых полей игнорируется» не работает.
Beepye
Проверка по умолчанию работает для меня с <input type="text" name="myfield" id="myfield" required="required" style="display: none;">. Мне не нужно было менять настройки или делать что-то особенное.
SquareCandy

Ответы:

329

Автор плагина говорит, что вы должны использовать «квадратные скобки без кавычек» ,[]

http://bassistance.de/2011/10/07/release-validation-plugin-1-9-0/

Release: Validation Plugin 1.9.0: «... Еще одно изменение должно упростить настройку форм со скрытыми элементами, теперь они по умолчанию игнорируются (опция« ignore »теперь имеет«: hidden »по умолчанию). Теоретически это может нарушить существующую настройку. В маловероятном случае, если это действительно так, вы можете исправить это, установив опцию ignore на «[]» (квадратные скобки без кавычек). "

Чтобы изменить этот параметр для всех форм:

$.validator.setDefaults({ 
    ignore: [],
    // any other default options and/or rules
});

(Не обязательно .setDefaults()быть внутри document.readyфункции)

ИЛИ для одной конкретной формы:

$(document).ready(function() {

    $('#myform').validate({
        ignore: [],
        // any other options and/or rules
    });

});

РЕДАКТИРОВАТЬ :

Посмотрите этот ответ, чтобы узнать, как включить проверку некоторых скрытых полей, но игнорировать другие.


РЕДАКТИРОВАТЬ 2 :

Прежде чем оставлять комментарии о том, что «это не работает» , имейте в виду, что OP просто задает вопрос о плагине jQuery Validate, и его вопрос не имеет ничего общего с тем, как ASP.NET, MVC или любая другая платформа Microsoft может изменить этот плагин в обычном режиме. ожидаемое поведение Если вы используете платформу Microsoft, функция плагина jQuery Validate по умолчанию перезаписывается плагином Microsoft unobtrusive-validation.

Если вы боретесь с unobtrusive-validationплагином, пожалуйста, обратитесь к этому ответу: https://stackoverflow.com/a/11053251/594235

Спарки
источник
26
Возможно, избиратель может дать мне конструктивную обратную связь. В противном случае, ответ является полностью автономным, правильно подобранным, дает примеры кода и технически корректен в соответствии с автором плагина.
Спарки
1
@StijnVanBael, нет, это неверно. Смотрите: jsfiddle.net/F4w92/1, а также смотрите мой второй комментарий к ответу Джерика .
Sparky
4
Хорошо сказано @Sparky. Падение голосов, вероятно, отчасти месть, я столкнулся с тем же ..
Омар
1
JSFiddle больше не работает, потому что библиотеки загружаются в HTTP вместо HTTPS. Обновленная версия: jsfiddle.net/F4w92/31
hotips
1
Я также понизил голосование, так как это не работает для меня, используя последнюю версию, пришлось использовать: $ ("form"). Data ("validator"). Settings.ignore = ""; а другой ответ от @James ржали
Марк Homer