2017-05-06 113 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。谢啦! –

相关问题