2012-08-16 54 views
2

嗨我有一個更改密碼頁面。2個驗證器一次驗證一個

我有2 textboxes,New PasswordConfirm Password

兩者都有requiredFieldValidators

compareValidator

但是,當我在第一場New Password鍵入發生的事情是,在同一時間的第二個文本框的requiredFieldValidatorCompareValidator都出現了錯誤消息。

我只想顯示requiredFieldValidator,只有當驗證程序返回true時,我想驗證compareValidator

我該如何做到這一點。以下是我的代碼。

 <table class="editAccTable"> 
      <tr> 
       <td> 
        New Password<br />      
        <asp:TextBox ID="txtNewPwd" runat="server" TextMode="Password" Width="204px"></asp:TextBox> 
        <br /> 
        <asp:RequiredFieldValidator ID="rfvNewPwd" runat="server" 
        ControlToValidate="txtNewPwd" 
        ValidationGroup="vgChangePwd" 
        Display="Dynamic" 
        ></asp:RequiredFieldValidator> 
       </td> 
       <td> 
        Confirm New Password<br />      
        <asp:TextBox ID="txtConfPwd" runat="server" TextMode="Password" Width="204px"></asp:TextBox> 
        <br /> 
        <asp:RequiredFieldValidator ID="rfvConfPwd" runat="server" 
        ControlToValidate="txtConfPwd" 
        ValidationGroup="vgChangePwd" 
        Display="Dynamic" 
        ></asp:RequiredFieldValidator> 
        <asp:CompareValidator ID="cvChangePwd" runat="server" 
        ValidationGroup="vgChangePwd" 
        ControlToValidate="txtNewPwd" 
        ControlToCompare="txtConfPwd" 
        ValueToCompare="String" 
        Display="Dynamic"      
        ></asp:CompareValidator> 
       </td> 
      </tr> 
      <tr> 
       <td colspan="2"> 
        <asp:ImageButton ID="ibtnPwdChange" runat="server" 
        ImageUrl="/images/submit.jpg" onclick="ibtnPwdChange_Click" 
        ValidationGroup="vgChangePwd" 
        Width="90px" Height="36px" 
        /> 
        <br />  
        <asp:Label ID="lblSuccessPwdChange" runat="server"></asp:Label>    
       </td> 
      </tr> 
     </table> 

回答

2

有一對夫婦工作的周圍。

對於我的情況,我可以刪除requiredFieldValidator作爲第二個文本框,因爲它已經足夠只有compareValidator

但是會有一些情況,必須有2個驗證器。在這種情況下,我們可以使用css來重疊2個驗證器。

0

嘗試CompareValidator這樣

<asp:CompareValidator id="cvChangePwd" runat="server" ControlToValidate="txtConfPwd" ControlToCompare="txtNewPwd" ErrorMessage="Your passwords do not match up!" Display="Dynamic" /> 
0

集顯性能動態

顯示在所有驗證=「動態」

+0

儘管此代碼可以回答這個問題,提供有關爲什麼和/或如何代碼回答了這個問題提高了其長期額外的上下文期價值。 – kayess 2016-06-13 08:38:09