2017-05-14 3 views
1

Ich habe Validierung auf mein Formular über jquery angewendet und in diesem Formular habe ich vier Kontrollkästchen und der Benutzer muss eine zum Senden von Formular überprüfen.Was zu ersetzen Ersatz von Rückkehr boolean

Dies ist der Code:

for (var i = 0; i < c.length; i++) { 
    if (c[i].type == 'checkbox' && c[i].checked == true) {  
     return true; 
    } else { 
     error += alert ("You must select atleast one previous benefit provided"); 
     return false 
    } 
} 

das Problem ist, dass diese Return-Taste und wenn i Return-Taste löschen Über 4 mal (gleiche Anzahl von Kontrollkästchen) alarmiert, und wenn ich es dort dann lassen Sie die if-Anweisung, welche Felder überprüfen und geben Fehler nicht

if(error != "") { 
    $("#error").html("<strong>Some fields are invalid!</strong>") || error; 
    return false; 
} else { 
    return true; 
} 

funktionieren, wenn ich Validierung Rückkehr in Checkbox entfernen dann every gut funktionieren, aber es Warnungen viermal geben und wenn entfernen sie es nicht dann ohne Fehler gibt es das Formular abzuschicken.

+0

Bitte geben Sie eine [Minimal, vollständig und prüfbare Beispiel] (https://stackoverflow.com/help/mcve) des Problems Sie konfrontiert. –

+0

@ArturFilipiak was sollte ich sonst noch anbieten? Hier habe ich ein Problem. sollte ich den ganzen Validierungscode und HTML der Checkboxen setzen? –

+0

Wir können Ihr Problem nicht anhand des von Ihnen geposteten Codes überprüfen. Was ist "c"? Was genau ist der Fehler? Wie sieht das HTML aus? Nur die "Checkboxen" werden in Ihrer 'Form' validiert oder es gibt andere Elemente zur Validierung? Kannst du das Arbeiten [JSFiddle Demo] (http://jsfiddle.net/) machen? –

Antwort

2

alert() gibt nichts zurück, so dass Ihre error Logik nicht sinnvoll ist.

Erstellen Sie eine Sammlung von überprüften Kontrollkästchen und stellen Sie sicher, dass sie stattdessen die Länge hat.

var hasChecked = $('#myForm :checkbox:checked').length; 
if(!hasChecked){ 
    return false 
    error = true; 
} 
+0

was meinst du mit Länge? wie kann ich das machen? –

+0

Die Länge des jQuery-Objekts gibt Auskunft darüber, ob Selektor-Übereinstimmungen vorhanden sind oder nicht – charlietfl

+0

Es gibt immer noch einen Return-Schlüssel, der den Return-Schlüssel am Ende des Fehlers unterbricht. –

Verwandte Themen