2012-02-22 9 views
0

私は3つの入力をHTMLフォームに持っています:古いパスワード、新しいパスワード、および新しいパスワードの再入力。私は、新しいパスワードフィールドのJQueryのパスワード検証プラグインを使用します。しかし、3つの入力がパスワードのタイプであった場合、プラグインは3つの入力すべてに影響を与えました。私はそれが1つの入力(新しいパスワード)にしか影響しないようにしたい、どうすればいいのですか?以下は、私のコードです: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

+0

あなたのコードはどのように見えますか?どのjqueryセレクタが使用されていますか? – denolk

+0

上記のコードを参照してください –

答えて

0

は、プラグインを知ってはいけない、私はあなたが簡単にあなただけの特定の入力(それに固有のIDを割り当てる)に検証を適用するためにそれを変更することができると思います。あるいは、新しいパスワード入力のIDをプラグインに渡して、その入力だけを検証するようにすることもできます。

1

「新しいパスワード」フィールド(id = "newpassword")にIDを追加し、このIDをjQueryパスワード検証プラグインに指定します。このような

何か:

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

+0

何かのために申し込む方法がわかりません。私のコードを参照してください(上に更新)。 –

2

問題は、パスワード検証プラグインは、「パスワード」と呼ばれる新しい検証メソッドを追加することです。 jQueryの検証プラグインは、それが呼び出す必要がありますどのような検証方法を決定する方法の

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

一つは、メソッド名、フィールドタイプに等しいかどうかをチェックすることです。この場合、すべての要素のタイプは、追加された新しいメソッドと同じパスワード(TextMode = "Password"で設定)です。

回避策は、パスワード検証プラグインのメソッド名を別のものに変更することです。

また、メソッドが検証プラグインに登録されたときに、新しいメソッド名に変更する必要があります。

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

パスワードクラスを持つフィールドのみが検証されます。

+0

ありがとうございました!これは数週間、私の人生の悩みになっています! – MHTri

関連する問題