【问题标题】:password validation not working for me密码验证对我不起作用
【发布时间】:2014-05-30 09:41:20
【问题描述】:

当您输入密码时,我需要制作一个 html 页面。每当用户输入正确的密码时,他就会被发送到一个网站。如果用户不输入正确的密码,他会收到一个错误。(我只需要使用 javaScript.no jquery 和类似的东西来做)这就是我所做的 -

<form>

在此处输入密码:

<input type="text" id="putPass" name="go2" /> <br />
<input type="button" value="click here" id="press" onclick="pass()" />
</form>

<script type="text/javascript">
var password = ["1234","abcd","0000","1111","4321"]
function pass()

document.getElementById("putPass").value.    //it says it has a syntax error and i dont know why...


if (this == password[])
{
document.write("good job!");    
}
else
{
alert("try again!");
}

</script>

谢谢。

【问题讨论】:

  • 我希望你知道这是 100% 没有安全保护?
  • 我知道,我只需要它来完成一项任务而已。
  • 行尾的点导致语法错误,函数缺少花括号对。
  • 删除了,还是报错...
  • @shayk 您的 pass 函数周围也缺少大括号。

标签: javascript html passwords


【解决方案1】:

您可以尝试使用此代码执行此操作。

http://jsfiddle.net/VAK3N/

<form>
    <input type="text" id="putPass" name="go2" />
    <br />
    <input type="button" value="click here" id="press" />
</form>

<script type="text/javascript">
    var password = ["1234", "abcd", "0000", "1111", "4321"];
    document.getElementById('press').onclick = function () {
        var p = document.getElementById("putPass").value;
        if (password.indexOf(p) > -1) {
            alert("good job!");
        } else {
            alert("try again!");
        }
    }
</script>

【讨论】:

    【解决方案2】:

    试试这个

    <script type="text/javascript">
     var password = ["1234","abcd","0000","1111","4321"];
    
    function pass(){
    
    var userPass = document.getElementById("putPass").value;
    
    if (in_array(userPass, password)){
      document.write("good job!");    
    }
    else {
     alert("try again!");
    }
    
    
    }
    
    function in_array(needle, haystack){
    
    for(var key in haystack)
    {
        if(needle === haystack[key])
        {
            return true;
        }
    }
    
    return false;
    }
    
    
     </script>
    

    【讨论】:

      【解决方案3】:
      var pass = document.getElementById("putPass").value;
      var correct = false;
      
      for (var i=0;i<password[].length;i++){
          if (password[i] == pass){
              correct = true;
              break;
          }
      }
      if (correct){
          document.write("good job!");    
      } else {
          alert("try again!");
      }
      

      不确定该确切代码是否有效,但我认为您需要在 for 循环中单独检查每个密码,您无法将字符串与整个数组进行比较。

      【讨论】:

        【解决方案4】:

        我没有首先看到您不想使用 jQuery。那么这是适合您的工作代码。

        JS:

        var password = ["1234","abcd","0000","1111","4321"]
        function pass(){
        
            var input = document.getElementById('putPass').value;
            var accepted= false;
            for(var pass in password){
                if(password[pass] == input ){
                    accepted= true;
                }
            }
            if(accepted){
                alert('good job!');
            }else{
                alert('try again!');
            }
        }
        

        HTML:

        <form>
        <input type="text" id="putPass" name="go2" /> <br />
        <input type="button" value="click here" onClick="pass();" id="passSender"/>
        </form>
        

        【讨论】:

        • 他不想要 jQuery。
        猜你喜欢
        • 1970-01-01
        • 2018-07-18
        • 2016-08-16
        • 2018-06-10
        • 1970-01-01
        • 2015-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多