3

嗨,我有一个更改密码页面。

我有2textboxes和.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>
4

3 回答 3

2

有几个解决方法。

就我而言,我可以删除requiredFieldValidator第二个文本框,因为它就足够了compareValidator

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

于 2012-09-11T06:30:30.647 回答
0

CompareValidator像这样试试

<asp:CompareValidator id="cvChangePwd" runat="server" ControlToValidate="txtConfPwd"   ControlToCompare="txtNewPwd" ErrorMessage="Your passwords do not match up!" Display="Dynamic" />
于 2012-08-16T04:28:43.147 回答
0

将显示属性设置为动态

所有验证器中的 display="dynamic"

于 2016-06-13T08:08:41.913 回答