Javascript密码字段比较

Javascript Password field comparison

您好,我有以下代码。

        <script type="text/javascript">
            function validateForm() {
                var u = document.forms["myForm"]["username"].value;
                if (u == null || u == "") {
                    alert("First name must be filled out");
                    return false;
                }
                else 
                    var x = document.forms["myForm"]["email"].value;
                    var atpos = x.indexOf("@");
                    var dotpos = x.lastIndexOf(".");
                    if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= x.length)
                    {
                        alert("Not a valid e-mail address");
                        return false;
                    }

                    else 
                        var p = document.forms["myForm"]["pwd1"].value;
                    if ( p < 7)
                    {
                        alert("Not a valid password");
                        return false;
                    }

            }


</script>

    Username: <input type="text" name="username"><br />
    Email&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <input id="email" type="text" /><br />
    Password&nbsp;
    <input id="pwd1" type="password" /><br />
    Confirm&nbsp;&nbsp;&nbsp;
    <input id="Password2" type="password" /><br />
    <br />
   <input type="submit" value="Submit"><br />






</div>
</form>

这是 运行 与 visual studio 13 asp 运行 在服务器上。 现在我的问题是,如果其他 2 个(用户名和电子邮件)不正确,它会显示警告并通知用户(又名我)出现问题。

密码字段只有在当前代码为空时才会这样做,而如果我什至输入一个字符则它不会将我重定向到 404,如果它是 7 个及以上字符,这将是自然的。

我不知道为什么会这样,并且在过去的 6 个小时里试图通过一些已经实现的表单或示例找出解决方案或我的代码中的错误。

感谢任何帮助。

如果您要检查密码的长度,代码应如下所示

var p = document.forms["myForm"]["pwd1"].value.length;

instead of

var p = document.forms["myForm"]["pwd1"].value;

可能对你有帮助!!

function validate()
{
  var a = document.getElementById("pwd1");
  var b = document.getElementById("pwd2");
  if(!(a==b))
  {
    alert("both passwords are not matching");
    return false;
  }
  return true;
}