2个验证器一次验证一个

时间:2012-08-16 03:55:46

标签: asp.net validation

您好我有一个更改密码页面。

我有2 textboxesNew 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>

3 个答案:

答案 0 :(得分:2)

有几项工作。

对于我的情况,我可以删除第二个文本框的requiredFieldValidator,因为它足以只有compareValidator

但是在某些情况下,必须有2个验证器。在这种情况下,我们可以使用css重叠2个验证器。

答案 1 :(得分:0)

尝试CompareValidator这样的

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

答案 2 :(得分:0)

将display属性设置为动态

所有验证器中的

display =“dynamic”