2017-05-20 7 views
1

Ich versuche, ein Array mit dem jQuery Validate-Plugin zu validieren. Das Array verfügt über einen numerischen Schlüssel und die Schlüsselnummer ist nicht sequenziell. Das heißt, es könnteArray mit jQuery validieren Validieren

cause[0] or cause[2] or cause[7] 

Html-Code

<form id="myform" action="submit.php"> 
    <select name="cause[0]" id="cause" class="cause"> 
    <option value="">Cause to Support</option> 
    <option value="993">Medical</option> 
    <option value="355">Children</option> 
    </select> 
    <select name="cause[2]" id="cause" class="cause"> 
    <option value="">Cause to Support</option> 
    <option value="993">Medical</option> 
    <option value="355">Children</option> 
    </select> 
    <input type="submit" name="submit" value="submit" /> 
</form> 

Demo sein - https://jsfiddle.net/squidraj/afgmqf9g/3/

Es ist nicht die Validierung und Absenden des Formulars Datei submit.php. In der Firebug-Fehlerkonsole gibt es auch keinen Fehler.

Jede Hilfe wird sehr geschätzt.

+0

Mögliche Duplikat von [Wie zu validieren Array von Eingaben mit validate p lugin jquery] (http://stackoverflow.com/questions/24670447/how-to-validate-array-of-inputs-using-validate-plugin-jquery) – JYoThI

+0

Hat nicht mit ignorieren funktioniert. https://jsfiddle.net/squidraj/afgmqf9g/7/ –

+0

@JYoThI Ich habe die checkForm-Funktion wie in diesem Beitrag beschrieben geändert, aber nicht funktioniert. –

Antwort

1

Versuchen Sie, diese Working Fiddle

<form id="myform" action="submit.php"> 
    <select name="cause[0]" id="cause" class="cause"> 
    <option value="">Cause to Support</option> 
    <option value="993">Medical</option> 
    <option value="355">Children</option> 
    </select> 
    <select name="cause[1]" id="cause1" class="cause"> 
    <option value="">Cause to Support</option> 
    <option value="993">Medical</option> 
    <option value="355">Children</option> 
    </select> 
    <input type="submit" name="submit" value="submit" id="btnSubmit" /> 
</form> 

JQuery-Code helfen:

$("#myform").validate(); 
    $(".cause").each(function() { 
     $(this).rules("add", { 
      required: true, 
      messages: { 
      required: "Custom Message for required" 
      } 
     }); 
    }); 

    $("#btnSubmit").click(function(e){  
    var isValid= $("#myform").valid(); 
    if(isValid==false){ 
    e.preventDefault(); 
    } 
    else{ 
     alert("Validate Successful."); 
    } 
    }); 
+0

Brilliant. Ich habe mich gefragt, ob ich eine benutzerdefinierte Fehlermeldung hinzufügen kann. –

+1

Ausgezeichnet. Danke vielmals. –

+0

Es gibt ein Problem. Da dies für den Klassennamen gültig ist, werden die Fehlermeldungen nach dem letzten Klassennamen hinzugefügt. Es gibt einige Eingabeelemente nach dem ersten Auswahlfeld und dann kommt das zweite Auswahlfeld. Wenn ich also das erste Auswahlfeld leer lasse und validiere, erscheint die Fehlermeldung nach dem letzten Auswahlfeld. –

0

Try this:

$("#myform").validate(); 
$(".cause").each(function (item) { 
    $(this).rules("add", { 
     required: true 
    }); 
}); 

Hoffe, dass es

+0

Ich habe versucht, aber hat nicht funktioniert. Aktualisierte Geige - https://jsfiddle.net/squidraj/afgmqf9g/6/ –