2009-07-29 8 views
0

Ich benutze jquery.validate.js auf einem Formular, das so funktioniert, wie es sollte, außer für einen Bereich, wo Benutzer zwischen der Zahlung per Scheck oder Kreditkarte wählen können. Abhängig davon, welche Option gewählt wurde, wird ein verstecktes Div angezeigt.Jquery Validieren

von Check:

<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> 

Per Kreditkarte:

<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> 

Ich brauche die nur validierte Kreditkarte, wenn das Optionsfeld (id = "Kredit") angeklickt wird. So habe ich die folgenden Inline-Regeln mithilfe von Klassen (Ich habe nur einen Teil des Codes enthalten):

<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> 

Was zäh passiert, ist, dass es die Validierung selbst wenn überprüfen als Zahlungsmethode gewählt wurde, und deshalb gewonnen‘ t senden, ohne dass die Kreditkarteninformationen geliefert werden.

Was mache ich falsch?

Prost und vielen Dank für jede Hilfe mit diesem.

Antwort

0

Versuchen Sie folgendes:

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