Подключаемый модуль проверки JQuery - проверка скрытых элементов только при отображении - PullRequest
9 голосов
/ 16 августа 2010

У меня есть форма, в которой есть поле "Ваш платежный адрес совпадает с вашим адресом доставки". Если пользователь нажимает переключатель «Нет», отображается скрытый адрес ul # billingAddress. Поля, содержащиеся в ul # billingAddress, обязательны для заполнения, если они видимы, то есть если ul имеет display: block.

Как мне написать собственный addMethod для jquery validate.js, который требует их, только если поле видно? Это то, что у меня не работает.

$.validator.addMethod ("BillingSameAsShipping", function(value, element) {
   var billingFields = ['billingAddress1','billingAddress2','billingCity','billingState','bilingZip']
   if ($("#billingAddress").is('visible') && billingFields.val('') {
       return false;
   } else 
       return true;
 }, "Please fill in the required billing information" );

Это, очевидно, измучено. Мне нужно, чтобы это работало для каждого, находящегося в переменной.

Спасибо!

1 Ответ

19 голосов
/ 16 августа 2010

Проблема с видимой проверкой заключается в следующем: .is('visible') должно быть: .is(':visible'), чтобы использовать селектор :visible .


В качестве альтернативы, вы можете использовать ignore параметр , чтобы сделать то, что вы хотите, немного проще, например:

$("#myForm").validate({
  //other options
  ignore: ':hidden'
});

Этот подход позволяет вам использовать стандартные требуемые правила, если хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...