Mic*_*der 0 javascript if-statement
我是一个编程新手试图创建一个要求输入密码的函数,但如果密码尝试错误超过五次,将显示错误消息.我试过用这些代码摆弄各种不同的方法,但它不会起作用.我有一个名为count的变量,从0开始,每次输入错误的密码时,1应该被添加到count中,一旦count大于5,就会显示错误消息.
document.getElementById("word-checker").onclick = function () {
var count = 0;
var inputValue = document.getElementById("text-input").value;
var secretWord = "password123";
if (count > 5) {
alert("You have had 5 unsuccessful login attempts. You account has been temporarily locked.");
} else if (inputValue == secretWord) {
alert("Your answer is correct!");
document.getElementById("text-input").value = "";
} else if (inputValue!==secretWord) {
count++;
alert("Your answer is incorrect. Please try again.");
document.getElementById("text-input").value = "";
}
}
Run Code Online (Sandbox Code Playgroud)
这让我疯了.我确定这是一个简单的初学者的错误.任何有助于我理解为什么这不起作用的输入都会得到很多的感激.
每次触发click事件时,您都将重置count为0:
document.getElementById("word-checker").onclick = function () {
var count = 0; // <-- button clicked, set the value to zero.
// ...
}
Run Code Online (Sandbox Code Playgroud)
这意味着count永远不会达到5(事实上,它永远不会成为> 1,因为当count++值增加时1,它会0在下次单击时重新设置).因此,if (count > 5)永远不会触发if语句的一部分.
您需要在click事件count 之外声明:
var count = 0;
document.getElementById("word-checker").onclick = function () {
// use count here
// ...
}
Run Code Online (Sandbox Code Playgroud)