我使用了一个必填字段验证器,后跟一个正则表达式验证器,但必填字段验证器不工作.....
<asp:TextBox ID="txtSummary" runat="server" TextMode="MultiLine" Width="700px"
CssClass="txtStyle" Font-Names="Arial" MaxLength="1000"
ValidationGroup="Valtxt" TabIndex="2" Rows="4">
</asp:TextBox>
<asp:RegularExpressionValidator ID="regValSummary" runat="server"
ControlToValidate="txtSummary" Display="Dynamic"
ValidationExpression="[^<>&#!]*" ValidationGroup="Valtxt">
Invalid characters(<>&#!) are not allowed
</asp:RegularExpressionValidator>
<asp:RequiredFieldValidator ID="reqvalSummary" runat="server"
ControlToValidate="txtSummary" ErrorMessage="Summary is required"
ValidationGroup="Valtxt" Display="Dynamic">
</asp:RequiredFieldValidator>
有没有人能看出问题所在?
5条答案
按热度按时间ruarlubt1#
RequiredFieldValidator
是由客户端的onchange
事件触发的,听起来好像您希望它是由onblur
事件触发的,这样,从文本框移开时就会触发验证。在此之前,我怀疑这就是您所看到的,为了验证它是否真的在工作,您需要触发
onchange
。为此,在文本框中输入一些文本,切换,切换回到它,清除文本框,然后再次切换。您现在应该看到RequiredFieldValidator的错误消息,因为它的内容已经 * 更改 *。回到
onblur
问题,要实现该行为,可以在代码隐藏中添加onblur
属性,并让它调用ValidatorValidate(...)
JavaScript方法,如下所示:或者,你可以在标记中完成同样的事情。首先,添加这个脚本块:
其次,通过添加
onblur="rfvBlur()"
更新<asp:TextBox.../>
标记,使其现在看起来如下所示:还有一种方法是通过向
<asp:TextBox.../>
标记添加以下属性来验证整个ValidationGroup(不需要额外的脚本块):dgiusagp2#
将这一行添加到web.config的
<appSettings>
部分对我很有效(当项目升级到. NET 4.5时,所有验证器都停止工作,我遇到了一个问题):资料来源:
http://forums.asp.net/t/1876231.aspx?ASP+Net+4+5+Validation+Controls+not+working+with+AJAX+ToolkitScriptManager1
qlckcl4x3#
为什么不更改“RegEx”验证器的正则表达式来检查文本框是否为空,而使用另一个验证器呢?
无论如何,您可能没有为引发回发的按钮或控件指定ValidationGroup=“Valtxt”。只需将ValidationGroup=“Valtxt”添加到引发页面回发的按钮或服务器控件
gzszwxb44#
我将以下内容放在btn_Click事件处理程序的顶部(以防止进一步执行代码),在“返回”时,rfv消息显示...
jobtbby35#