Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 2个验证器一次验证一个_Asp.net_Validation - Fatal编程技术网

Asp.net 2个验证器一次验证一个

Asp.net 2个验证器一次验证一个,asp.net,validation,Asp.net,Validation,嗨,我有一个更改密码页面 我有两个文本框,新密码和确认密码 两者都有一个requiredFieldValidator 和一个比较器 但是,当我输入第一个字段新密码时,第二个文本框的requiredFieldValidator和CompareValidator同时显示错误消息 我只想显示requiredFieldValidator,并且只有当该验证器返回true时,我才想验证compareValidator 我怎样才能做到这一点。下面是我的代码 <table class="e

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

我有两个
文本框
新密码
确认密码

两者都有一个
requiredFieldValidator

和一个
比较器

但是,当我输入第一个字段
新密码
时,第二个文本框的
requiredFieldValidator
CompareValidator
同时显示错误消息

我只想显示
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>

新密码

确认新密码



像这样尝试
CompareValidator

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

有两个解决方法

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


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

将display属性设置为dynamic


display=“dynamic”在所有验证器中显示

而此代码可能会回答问题,提供有关此代码回答问题的原因和/或方式的附加上下文可提高其长期价值。