2017-06-14 87 views
0

我正在使用jquery验证来检查密码强度,但它不起作用。确认密码匹配部分正在工作,但不是自定义规则。请问我在这里错过了什么?密码强度验证

脚本:

HTML:

<label class="typ2">Old Password:</label> 
     @Html.Password("Password", null, new { @class = "typ2 shad1 trans1", maxlength = "50", required = "required" }) 
     <br class="floatClear" /> 

     <label class="typ2">Login Password:</label> 
     @Html.Password("NewPassword", null, new { @class = "typ2 shad1 trans1", maxlength = "50", id = "password", required = "required" }) 
     <span style="position: absolute;margin-top: 0;margin-left: 10px;">Please ensure your password contains an uppercase letter, number and symbol.<br /> Passwords must be between 8 &amp; 15 characters.</span> 
     <label style="color:red !important; margin-left: 10px; font-size:24px;">*</label> 
     <br class="floatClear" /> 

     <label class="typ2">Confirm Password:</label> 
     @Html.Password("ConfirmPassword", null, new { @class = "typ2 shad1 trans1", minlength = "8", maxlength = "50", id = "confirm", required = "required" }) 
     <br class="floatClear" /> 
+0

你是否试图通过限制字符库和限制最大长度来强制执行强密码? –

+0

相关xkcd:[密码强度](https://xkcd.com/936/) – Andreas

+0

lol Andreas,是的,我不希望如此限制,但这是客户想要的。由于错误消息表明密码必须包含大写字母和数字,并且介于8到15个字符之间。 – BMills

回答

1

报价OP的comment

我终于想通了这个问题。我需要将'pwcheck'添加到输入的类名称。对类似问题的其他答案都没有表明这一关键步骤。 :(

领域的类中把pwcheck不是一个“关键的一步”,这只是一个分配规则,以不同的方式有几种方法使用这个插件来分配规则

你的根本问题是。下面,当通过rules对象分配规则,你必须使用相应的字段的name由于pwRules是不是现场的name,这个规则分配被忽略。

$('#changePassword').validate({ 
    rules: { 
     ConfirmPassword: {  // <- field NAME 
      equalTo: "#password" // <- rule 
     }, 
     pwRules: { // <- this is not the NAME of a field 
      pwcheck :true 
     } 
    .... 

应该有点像...

rules: { 
     ConfirmPassword: {  // <- field NAME 
      equalTo: "#password" // <- rule 
     }, 
     Password: {    // <- field NAME 
      pwcheck :true   // <- rule 
     } ....