2017-05-06 8 views
0

Also, ich erstelle ein Login-Formular, und wenn bestimmte Kriterien nicht erfüllt sind, nach dem Formular fortzusetzen, setze ich eine Variable zu testen nachdem ich alle Kriterien getestet habe. WENN diese Variable ($ cantcontinue) auf 'true' gesetzt ist, möchte ich eine Konsolennachricht mit den Kriterien senden, die nicht erfüllt sind. Hier ist mein Code:Wie setze ich eine JavaScript-Variable innerhalb einer for-Schleife, die danach verwendet wird

function testfields() { 
    // Ask if logging in or Creating Account 
    //Logging In: 
    if (document.getElementById("tEmail").style.display != "unset") { 
     var loginelements = ["Username", "Password"]; 

     var text = ""; 
     var i; 
     for (i = 0; i < loginelements.length; i++) { 

     //Check all fields are full: 
     if (document.getElementById(loginelements[i]).value == "") { 
      document.getElementById(loginelements[i]).style.background = '#ff6060' 
      var cantcontinue = true; 
      console.log(loginelements[i] + " is not set,") 
     } else { 
      document.getElementById(loginelements[i]).style.background = '#f7f7f7' 
     } 
     } 
     if ($cantcontinue != true) { 
     console.log("Create Account") 
     } else { 
     console.log("Could Not Create Account") 
     } 



    //Create a new Account: 
    } else { 
     var createelements = ["Username", "Password", "tEmaili", "tConfirmi"]; 

     var text = ""; 
     var i; 
     for (i = 0; i < createelements.length; i++) { 

     //Check all fields are full: 
     if (document.getElementById(createelements[i]).value == "") { 
      document.getElementById(createelements[i]).style.background = '#ff6060' 
      var cantcontinue = true; 
      console.log(createelements[i] + " is not set,") 
     } else { 
      document.getElementById(createelements[i]).style.background = '#f7f7f7' 
     } 
     } 

     //If passwords Match 
     if (document.getElementById("Password").value != document.getElementById("tConfirmi").value) { 
     var cantcontinue = true; 
     document.getElementById("tConfirmi").style.background = '#ff6060' 
     document.getElementById("tConfirmi").value = '' 
     console.log(" Passwords didn't Match,"); 
     } 

     if ($cantcontinue != true) { 
     console.log("Create Account") 
     } else { 
     console.log("Could Not Create Account") 
     } 
    }   
    } 
+0

Sie sollten vermeiden, eine Variable zweimal im selben Umfang/Funktion (z. B. "var cantcontinue") zu definieren. Es empfiehlt sich, alle Variablendefinitionen nach der zweiten Zeile oben zu platzieren. :) Lesen Sie mehr über "hoisiting" hier https://github.com/getify/You-Dont-Know-JS/blob/master/scope%20%26%20closures/ch4.md oder suchen Sie nach diesem Begriff hier auf SO . – chaenu

Antwort

0
$cantcontinue !== cantcontinue;//.... 

Auch

if (cantcontinue != true) { 

gleich:

if (!cantcontinue) { 

Nebenbei bemerkt: Bitte verwenden Sie keine "$", wenn Sie jQuery verwenden. Es erinnert mich an PHP (brrrrr ...)

+0

Danke, ich habe mir angewöhnt, das $ zu benutzen, weil ich php in letzter Zeit etwas gebraut habe. Danke, Mann! –

Verwandte Themen