使用javascript验证密码并取消表单提交

时间:2014-11-07 16:41:22

标签: javascript jquery html

我正在尝试使用javascript来确保在我的网站上注册的用户没有符号,并且密码中至少包含8个字符。我有一个分配给输入btn的onclick函数,它似乎没有工作。

以下是JS Fiddle Link:http://jsfiddle.net/fh8o5vub/

密码语法检查究竟如何工作?我不明白格式..

另外,如何停止提交php表单?返回false不这样做..



function CheckPassword() {
    var passw = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,14}$/;
    if (document.getElementById("password".value.match(passw)) {
        return true;
      } else {
        alert('You can only use standard letters a-z and your psasword must be atleast eight letters!')
        return false;
      }
    }

<form onsubmit="CheckPassword(password)" id="step2form" name="step2form" method="post" autocomplete="off" action="#">

  <input type="password" id="password" name="password" class="form-control formsubfree" ng-model="formData.password" required>

  <button type="submit" class="btn btn-danger btn-lg btn-block formsubfree" id="b" style="font-family: 'klavikaRegular'; letter-spacing: 1px;" name="skip" value="0">CONTINUE</button>

</form>
&#13;
&#13;
&#13;

谢谢!

2 个答案:

答案 0 :(得分:0)

我不知道正则表达式是如何工作的,但是对于不提交的表单,你需要 onsubmit="return CheckPassword(password)"然后在函数document.getElementById("password").value.match(passw)中,因为您将.match函数混合到.getElementById函数中,因此无效。

答案 1 :(得分:0)

正如已经提到的,你需要使用onsubmit="return CheckPassword(password)"但是,我敢说你实际上有一个错误,因为我所看到的password没有被定义。

此外,由于您未在方法定义中使用变量(function CheckPassword()),因此您不应向其发送任何内容。这不会导致它被调用,但仍然没有必要。