用户输入后,JavaScript功能无法正常运行

时间:2019-12-17 21:37:17

标签: javascript html

一些非常简单的代码,尽管我不知道为什么它不能正常工作。运行时,它会要求输入密码,但是一旦输入密码后便什么也不做。应该给用户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>

1 个答案:

答案 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);