Jquery Validate - PullRequest
       24

Jquery Validate

0 голосов
/ 29 июля 2009

Я использую jquery.validate.js в форме, которая работает должным образом, за исключением области, где пользователи могут выбирать между оплатой чеком или кредитной картой. В зависимости от того, какая опция выбрана, будет отображаться скрытый div.

По чеку:

<div class="accordionButton">
 <label for="Cheque"><input onclick="javascript: $('#li_buttons').show('slow');" type="radio" name="payby" id="cheque" value="Cheque"/>Pay by Cheque</label>
</div>

кредитной картой:

<div class="accordionButton">
<label for="Credit Card"><input onclick="javascript: $('#li_buttons').show('slow');" type="radio" name="payby" id="credit" value="Credit Card" />Pay by Credit Card</label>
</div>

Мне нужно, чтобы кредитная карта была подтверждена ТОЛЬКО, если нажата радиокнопка (id = "credit"). Поэтому я добавил следующие встроенные правила с использованием классов (я включил только часть кода):

<div class="accordionContent"><label class="description" for="card_name">Cardholder's Name </label>
<li><input id="card_name" name="card_name" class="required #credit:checked" type="text" value="" /></li>
<label class="description" for="free_quarter">Credit Card Type</label>
<li><select "id="card_type" name="card_type" class="required #credit:checked"> 
<option value="">Select</option>
<option value="visa">Visa</option>
<option value="mastercard">MasterCard</option>
<option value="am_ex">Am Ex</option>
</select></li>

Что происходит сложным образом, так это то, что он проверяется, даже если в качестве способа оплаты был выбран чек, и, следовательно, не будет отправлен без предоставления информации о кредитной карте.

Что я делаю не так?

Приветствия и большое спасибо за любую помощь с этим.

1 Ответ

0 голосов
/ 30 июля 2009

Попробуйте это:

  $("#myform").validate({
     card_type: function(element) {
        return $("#credit:checked").length > 0;
      }
  });
...