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