2017-05-06 115 views
0

所以,我創建了一個登錄表單,並且當某些條件不滿足要在表單之後繼續時,我設置了一個要測試的變量在我測試了所有標準後。如果該變量($ cantcontinue)設置爲'真'我想發送一個控制檯消息與不符合的標準。這裏是我的代碼:如何在for循環中設置一個JavaScript變量,以便後續使用

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

您應該避免在同一範圍/函數中定義兩次變量(例如「var cantcontinue」)。最佳做法是在第二行後面放置所有變量定義。 :)閱讀更多關於「hoisiting」在這裏https://github.com/getify/You-Dont-Know-JS/blob/master/scope%20%26%20closures/ch4.md或在這裏搜索這個詞在SO 。 – chaenu

回答

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

而且

if (cantcontinue != true) { 

等於:

if (!cantcontinue) { 

旁註:除非你使用jQuery,請不要使用 「$」。它讓我想起了PHP(brrrrr ...)

+0

謝謝,我剛剛養成了使用$的習慣,因爲我最近一直在使用php。謝啦! –

相關問題