一些非常简单的代码,尽管我不知道为什么它不能正常工作。运行时,它会要求输入密码,但是一旦输入密码后便什么也不做。应该给用户3次尝试正确输入密码的权限,并在适当的地方显示正确/错误的密码。任何人都可以帮助指出我在这里做错了什么,谢谢:)
这是我的代码:
<html>
<head>
<title>Password Entry</title>
<script>
function passwordEntry(vP)
{
i=0
password = prompt("Please enter password")
i++
if(password != vP){
do{
i++
password = prompt("Password incorrect" <br> "Please re-enter password")
}while (password != vP && i<=3)
}
if(password == vP){
alert("Password correct")
}
}
var validPassword = "123XY"
passwordEntry(validPassword)
</script>
</head>
</html>
答案 0 :(得分:0)
在字符串中,您使用\n
添加换行符。下面更新了代码:
function passwordEntry(vP) {
i = 0;
password = prompt("Please enter password");
i++;
if (password != vP) {
do {
i++;
password = prompt("Password incorrect \nPlease re-enter password");
} while (password != vP && i <= 3);
}
if (password == vP) {
alert("Password correct");
}
}
var validPassword = "123XY";
passwordEntry(validPassword);
,但是可以使用很多优化。在客户端提示输入密码完全是个坏主意,因为用户可以访问它。
使用if语句更新代码:
function passwordEntry(vP) {
for (i = 0; i <= 3; i++) {
if (i == 0) { // initial attempt
password = prompt("Please enter password");
} else if (i > 3) {
alert("Denied");
} else if (password != vP) {
password = prompt("Password incorrect \nPlease re-enter password");
} else if (password == vP) {
alert("Password correct");
i = 4; // stop prompting
}
}
}
var validPassword = "123XY";
passwordEntry(validPassword);