2012-02-22 136 views
0

我在HTML表单上有3个输入:旧密码,新密码和重新输入新密码。我为新密码字段使用JQuery密码验证插件。但是,如果三个输入是密码类型,则该插件会影响所有三个输入。我希望它只影响一个输入(新密码),我该怎么做?下面是我的代码:JQuery密码验证是否影响到所有输入类型的密码?

// The following code is in an UserControl, the form is in the page containt this control 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
     <script type="text/javascript"> 
     // This script is for validation 
      Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(CheckValidationStatus); 
      function CheckValidationStatus(sender, args) { { var isValid = $("form").validate().form(); args.set_cancel(!isValid); } } 
     </script> 

    <table class="listing form" cellpadding="0" cellspacing="0"> 
     <tr> 
      <td class="first"><strong>Old password:</strong></td> 
      <td class="last ofield"> 
       <asp:TextBox ID="txtOldPassword" runat="server" CssClass="text required" TextMode="Password"></asp:TextBox> 
      </td> 
     </tr> 
     <tr class="bg"> 
      <td class="first" width="172"><strong>New password:</strong></td> 
      <td class="last pwdfield"> 
       <asp:TextBox ID="tNewPassword" runat="server" CssClass="text password" TextMode="Password" ></asp:TextBox> 
       <span>Password strength</span> 
       <div class="password-meter"> 
        <div class="password-meter-message">Quá ng?n</div> 
        <div class="password-meter-bg"> 
         <div class="password-meter-bar"></div> 
        </div> 
       </div> 
      </td> 
     </tr> 
     <tr> 
      <td class="first"><strong>Retype Password:</strong></td> 
      <td class="last ofield"><asp:TextBox ID="txtRetypePassword" runat="server" CssClass="text" TextMode="Password" ></asp:TextBox></td> 
     </tr> 
</table> 

<p style="text-align:right"> 
    <asp:Button ID="Button1" runat="server" Text="Update" /> 
</p> 

</ContentTemplate> 
</asp:UpdatePanel> 
+1

请显示您的代码。 – JJJ 2012-02-22 11:38:13

+0

你的代码是什么样的?使用哪个jquery选择器? – denolk 2012-02-22 11:38:32

+0

请看我上面的代码 – 2012-02-22 12:11:02

回答

0

不知道该插件,但我认为你可以很容易地将其更改为只在特定的输入应用验证(为其分配一个唯一的ID)。或者,您可以更好地将新密码输入的ID传递给插件,并使其仅验证该输入。

1

将id添加到您的“新密码”字段(id =“newpassword”)并为jQuery Password Validation插件指定此ID。

事情是这样的:

$("#newpassword").validate();

+0

不知道如何申请,因为有些事情。请参阅我的代码(更新上面)。 – 2012-02-22 12:03:35

2

的问题是,密码验证插件添加一个名为“密码”的新验证方法。

$.validator.addMethod("password", function(value, element, usernameField) { 

一个jQuery的验证插件决定了它应该叫什么验证方法的一种方式是通过检查方法名称等于字段类型。在这种情况下,所有元素的类型都是密码(由TextMode =“Password”设置),与添加的新方法相同。

解决方法是将密码验证插件中的方法名称更改为其他名称。

$.validator.addMethod("passwordstrength", function(value, element, usernameField) { 

您还必须在将方法注册到验证插件时更改新方法名称。

$.validator.classRuleSettings.password = { passwordstrength: true }; 

现在只有具有密码类的字段才会被验证。

+0

谢谢!这几个星期以来一直是我生命中的祸根! – MHTri 2012-09-26 13:10:13