私が作っているこのサイトがあります。別の関数からグローバル変数を更新したい。グローバル変数i
は 0 に初期化されます。2 つの関数を作成しました。1 つはグローバル変数を更新し、アラートによって新しい値を表示する関数で、もう 1 つは更新されたグローバル変数の新しい値を警告するだけの関数です。問題は、最初の関数を呼び出すと、新しく更新された値が警告されることですが、2 番目の関数を呼び出すと、元の値がゼロであることが警告されます。
これが私のコードです:-
var i=0; var users=new Array();
var password=new Array();
users[0]="clydewinux";
password[0]="moonfang";
users[1]="freddipasquale";
password[1]="evastar182";
function verifyInput() { //function one
var u = login.username.value;
var p = login.password.value;
for (var c = 0; c <= 1; c++) {
if (u === users[c] && p === password[c]) {
i++;
alert(i);
window.location.replace("login.htm");
break;
} else {
document.getElementById("username").value = "Invalid username...";
window.location.href("home.htm");
break;
}
}
}
function logout() { //function two
alert(i);
window.location.replace("home.htm");
}
*ノート; function verifyInput() が最初の関数で、関数 logout が 2 番目の関数です。