2012-02-22 137 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