這是驗證,我正在努力,但似乎無法得到正確的。當我輸入正確的引腳「12345」時,它工作並且函數Done()顯示警告「完成」。但是,我們在引腳上輸入了3次失敗的嘗試,但它顯示錯誤,但函數完成仍然會在錯誤發生後激活,程序應該停止。任何解決方案Javascript:爲什麼我的輸入驗證不起作用?
<head>
<script>
valid = false;
function Start(valid) {
check(valid);
if (valid = true) {
Done();
}
if (valid = false) {
alert('End');
return;
}
}
function check(valid) {
var PinNum;
var Attempts = 0;
while (Attempts < 3) {
Attempts = (Attempts + 1);
PinNum = prompt('Enter the pin number');
if (PinNum == '12345') {
alert('Welcome!');
valid = true;
return valid;
return;
} else {
alert('Wrong pin number, this is attemp ' + Attempts + ' of 3');
}
}
alert('Too many failed attempts, giving up');
return;
}
function Done() {
alert("well done")
}
</script>
</head>
<body>
<button onclick="Start()">Start</button>
</body>
</html>
採取的調試器和調試代碼 – zerkms
你剛過'valid'作爲參數使得本地的校驗功能,所以改變'檢查函數內部valid'不會影響函數外的'valid',這是兩個不同的變量。 – adeneo