我是一个编程新手试图创建一个要求输入密码的函数,但如果密码尝试错误超过五次,则会显示错误消息。我试过用这些代码摆弄各种不同的方法,但它不会起作用。我有一个名为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 = "";
}
}
这让我疯了。我确定这是一个简单的初学者的错误。任何有助于我理解为什么这不起作用的输入都会得到很多的感激。
答案 0 :(得分:6)
每次触发点击事件时,您都会将count
重置为0
:
document.getElementById("word-checker").onclick = function () {
var count = 0; // <-- button clicked, set the value to zero.
// ...
}
这意味着count
永远不会到达5
(事实上,它永远不会成为> 1
,因为当count++
将值增加到{{1}时},在下次点击时将其设置回1
。因此,永远不会触发if语句的0
部分。
您需要在点击事件的之外声明if (count > 5)
:
count
答案 1 :(得分:1)
您每次点击活动时都会将计数重新定义为0。您需要将count定义为函数外部的全局,然后在每个错误上定义++。 此外,尝试纠正您的缩进,因为它有助于阅读。