首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CompareValidator缺少值

CompareValidator缺少值
EN

Stack Overflow用户
提问于 2014-11-05 00:40:57
回答 2查看 1.1K关注 0票数 0

我有两个文本框控件,txtPassword和txtPassword2在web窗体上。

使用CompareValidator控件,这两个字段都需要匹配。

代码语言:javascript
复制
txtPassword = "" 
txtPassword2 = "" 
No compare error 
txtPassword throws it's required field error

txtPassword = "1" 
txtPassword2 = "" 
No compare error

txtPassword = "" 
txtPassword2 = "1" 
Compare error 
txtPassword throws it's required field error

txtPassword = "1" 
txtPassword2 = "2" 
Compare error

知道为什么它缺少txtPassword2的空白值吗?

下面是代码:

代码语言:javascript
复制
<asp:TextBox ID="txtPassword" Text="" TextMode="Password" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Required!" ControlToValidate="txtPassword"></asp:RequiredFieldValidator>

<asp:TextBox ID="txtPassword2" Text="" TextMode="Password" runat="server"></asp:TextBox>
<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="Passwords do not match!" ControlToValidate="txtPassword2" ControlToCompare="txtPassword"></asp:CompareValidator>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-05 06:28:46

您只为asp:RequiredFieldValidator添加txtPassword,因此如果txtPassword2留空将不会引发所需的字段错误。您需要添加的一件事是asp:RequiredFieldValidator for txtPassword2,还需要指定验证组。因此,代码将类似于:

代码语言:javascript
复制
<asp:TextBox ID="txtPassword" Text="" TextMode="Password" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Required!" ControlToValidate="txtPassword" ValidationGroup="checkNull"></asp:RequiredFieldValidator>

<asp:TextBox ID="txtPassword2" Text="" TextMode="Password" runat="server"></asp:TextBox>

<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Required!" ControlToValidate="txtPassword2" ValidationGroup="checkNull"></asp:RequiredFieldValidator>

<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="Passwords do not match!" ControlToValidate="txtPassword2" ControlToCompare="txtPassword"></asp:CompareValidator>
票数 0
EN

Stack Overflow用户

发布于 2016-12-07 19:36:37

我也遇到过类似的情况,我希望在“插入”期间需要密码,并使用RequiredFieldValidators确保两个密码框都用一个CompareValidator完成,并确保它们匹配。

在编辑模式下,我关闭了RequiredFieldValidators并遇到了同样的问题,PasswordConfirm Textbox没有停止匹配,如果它是空的。

我通过使用2 CompareValidators来解决这个问题,ControlToValidateControlToCompare字段也是这样交换的。这迫使它们相互验证,以便如果输入了任何内容,就会强制进行检查。

代码语言:javascript
复制
<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="tbPassword" ControlToCompare="tbConfirmPassword"  Type="String" Display="Dynamic" ForeColor="Red" ErrorMessage="<br />The new passwords do not match" />
<asp:CompareValidator ID="CompareValidator2" runat="server" ControlToValidate="tbConfirmPassword" ControlToCompare="tbPassword"  Type="String" Display="Dynamic" ForeColor="Red" ErrorMessage="<br />The new passwords do not match" />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26747836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档