2016-11-29 3 views
0

У меня есть форма, которая изменяет входы, отображаемые на экране, в зависимости от значения выпадающего списка.
Это игнорирующее определение работает нормально и не проверяет любые входы с игнорировать класс не видно.
jquery validate plugin - игнорировать видимые входы, но включать скрытые входы с классом

ignore: ":not(:visible), .ignore", 

Но проблема теперь, когда я хочу, чтобы проверить несколько hidden входов с классом 'Validate', поэтому я изменил это:

ignore: ":hidden:not(.validate), :not(:visible), .ignore", 

Но : нет (: видимый) блокирует его. Как применить эти 2 правила вместе, чтобы я мог игнорировать не видимые входы и проверять скрытые входы с помощью 'validate' class?

+0

FYI - «невидимый» означает «скрытый», который включает в себя «type =» hidden «', 'display: none' и большинство других общих методов, которые скрывают элемент от представления. Я делаю это, потому что плагин уже игнорирует эти вещи по умолчанию, используя ': hidden'. – Sparky

ответ

1

Если вы хотите игнорировать все скрытые элементы, но все-таки проверить любой скрытый элемент с .validate класса, это просто селектор по умолчанию :hidden с .validate класса исключенного .. .

ignore: ":hidden:not(.validate)" 

DEMO: jsfiddle.net/0avft8ou/

Вам, вероятно, не нужен класс .ignore, потому что плагин автоматически игнорирует скрытый элемент.

+0

Я знаю, что это искрометно, но я хочу также не проверять все не видимые входы, у меня есть входы, которые у их контейнера есть дисплей: ни один, который я не хочу проверять, + не проверяйте скрытые входы, если они не имеют проверять класс. Посмотрите, что я пробовал. –

+0

@ OffirPe'er, я не думаю, что вы пробовали мою демоверсию. ** По умолчанию **, плагин игнорирует ВСЕ скрытые элементы, включая 'display: none'. Смотрите это: http://jsfiddle.net/0avft8ou/1/ – Sparky

+0

Я не знаю, почему я думал, что это не сработает ... –

-1

Попробуйте изменить первое правило, как

ignore: ":not(:visible), :not(:hidden), .ignore" 
+0

Я уже пробовал это, я подумал, что, возможно, это перепишет его, но это не так. Также я попробовал 'hidden: not (.validate)! Important', но это вызвало ошибку. –

+0

Насколько я знаю о jquery.validate, он работает (или может работать) на элементах, основанных на именах, т. Е. Мы применяем проверки для отдельных полей, а затем почему ваши проверки противоречат друг другу. –

+0

Может быть, алгоритм, который применяется к ': not (: visible)', имеет конфликт с ': not (: hidden)', вы более чем готовы создать скрипт, доказывающий, что я ошибаюсь. –

Смежные вопросы