2016-04-13 6 views
0

Der Code, an dem ich gerade gearbeitet habe, erlaubt das Senden des Formulars, wenn password1 und password2 nicht übereinstimmen. Ich bin ratlos. Jede Hilfe würde sehr geschätzt werden. Ich nutze diese Seite als Referenz, um das Coding zu lernen. Die Gemeinschaft hier ist hervorragend. Danke im Voraus.Formularübermittlungen mit nicht übereinstimmenden Passwörtern (JavaScript)

if ($.trim(Appery("register_firstname").val()) != "") { 
    if ($.trim(Appery("register_lastname").val()) != "") { 
     if (Appery("register_password1").val() == Appery("register_password2").val()) { 
      if ($.trim(Appery("register_email").val()) != "") { 
       if (!document.getElementsByName("register_email")[0].checkValidity || document.getElementsByName("register_email")[0].checkValidity()) { 
        if ($.trim(Appery("register_password1").val()) != "") {  
         {signupService.execute({}); 
        } 
       else {       
        document.getElementById("registrationpassword_error").innerHTML = "Please enter a password."; { 
        document.getElementById("register_password1").focus(); 
       } 
     } 
     }else { 
      document.getElementById("registrationemail_error").innerHTML = "Email Address not valid."; 
     { 
      document.getElementById("register_email").focus(); 
    } 
     } 
    } else { 
     document.getElementById("registrationemail_error").innerHTML = "Please enter your email."; { 
     document.getElementById("register_email").focus(); 
    } 
     } 
    } else { 
     document.getElementById("registrationpassword_error").innerHTML = "Passwords do not match."; { 
     document.getElementById("register_password1").focus(); 
    } 
     } 
} else { 
    document.getElementById("registrationlastname_error").innerHTML = "Please enter your last name."; { 
    document.getElementById("register_lastname").focus(); 
    } 
     //alert("Please enter your last name."); 
     } 
    } else { 
    document.getElementById("registrationfirstname_error").innerHTML = "Please enter your first name."; { 
     document.getElementById("register_firstname").focus(); 
    } 
     } 
    } 
+0

Code im Codebereich –

Antwort

0

Sie haben zu viele bedingte Kontrollen in Serie, und Ihr fehlt die ‚}‘ klammern alle das ‚wenn‘ Bedingungen schließen Ihre schrieb.
Die Anzahl der linken und rechten Klammern sollte übereinstimmen.
Ich würde Ihre 'if' Bedingungen trennen, so dass die Passwort-Validierung FERTIG ist, bevor andere Eingaben validiert werden. Jede 'if' Bedingung sollte eine 'true'/'false' Ausgabe haben, die am Ende des Codes überprüft werden kann, um festzustellen, ob alle Bedingungen 'wahr' sind.
So mache ich meine Validierung.
Jede bedingte Prüfung ist von den anderen getrennt.

+0

Die Anzahl der linken und rechten Klammern stimmen überein. Ich habe keine Erfahrung damit, meinen Code so zu ändern, dass er Ihren Empfehlungen entspricht. Können Sie zusätzliche Informationen oder ein Beispiel angeben? – timmyusa

+0

Das wäre eine Menge Code, da das Hinzufügen einer Regex-Abfrage nach jeder bedingten Prüfung bedeutet. Der Regex liefert nur eine Wahr/Falsch-Ausgabe, die als Variable gespeichert wird. Damit dieses Formular korrekt übergeben wird, sollten alle diese Variablen "wahr" heißen. Sie müssen am Anfang dieses Codeblocks bei jeder Ausführung auf 'null' oder 'false' zurückgesetzt werden. – Sparky256

0

Ich bin unsicher, was Appery ist, aber wenn es eine normale HTML- oder JSP-Seite ist, an der Sie gerade arbeiten, wird das Formular mit einem Klick auf den Submit-Button gesendet, unabhängig davon, was der obige Code zurückgibt.

Ich nehme an, Sie verwenden eine normale Schaltfläche zum Absenden des Formulars auf klicken, auf dem der obige Code ausgeführt wird und signupService.execute({}); das Formular übergibt.

Haben Sie versucht, mit Warnungen zu überprüfen, ob das Steuerelement tatsächlich in die letzte if-Schleife eingeht?

Verwandte Themen