簡體   English   中英

Prompt()登錄麻煩

[英]Prompt() Login trouble

我正在嘗試登錄網站,而while循環遇到了麻煩。 如果我輸入正確的登錄名,它會正確通過,但是如果輸入錯誤,則不會重復。 由於變量“ login”仍然為false,所以我不知道為什么while循環不會再次運行。

var login = false;
var num = 0;
var username = prompt("Enter your username");
var password = prompt("Enter your password");
while(!login){
    if(username == users[num].name){
        if(password == users[num].password){
            alert("welcome");
            login = true;
        }
    }
    if(num >= users.length){
        alert("incorrect login");
        num = 0;
        username = prompt("Enter your username");
        password = prompt("Enter your password");
    } else {
        num++
    }
}

讓我們分解一下問題,首先對登錄進行有效性檢查...

// assumes users is an array of registered users
function loginIsValid(username, password) {
    for (var n=0; n<users.length; n++) {
        if(username === users[n].name && password == users[n].password)
            return true;
    }
    return false;
}

現在我們的提示循環更簡單了...

var login = false;
while(!login){
    var username = prompt("Enter your username");
    var password = prompt("Enter your password");
    if (loginIsValid(username, password)) login = true;
}

您可以考慮添加一個計數器,因此檢查是:

 var attempts = 0;
 while(!login && attempts < MAX_ATTEMPTS) {
     attempts += 1;
     // etc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM