我的aps验证器遇到了以下问题。我有一个带有asp验证器的文本框。当用户将文本框留空并单击提交按钮时,验证消息会显示,但页面会进行回发。可能导致这种情况发生的任何想法?
继承人验证者:
<asp:RequiredFieldValidator ID="valReqName" runat="server"
ControlToValidate="txtName" Display="Dynamic" ErrorMessage="blq blq">
</asp:RequiredFieldValidator>
<asp:TextBox ID="txtName" style="font-family:Tahoma, Geneva, sans-serif;
color: #4F4F4F;" runat="server">
</asp:TextBox>
非常感谢, 安东
修改
我在UpdatePanel中有两个标签。验证问题是第二个选项卡的一部分,用户在其中进行一些输入。当我删除此触发器时:
<asp:AsyncPostBackTrigger ControlID="lnkUpload" EventName="Click" />
回发问题已解决,但又出现了另一个问题。好吧至少回发被删除了。谢谢你的所有答案。
(lnkUpload是第二个标签链接按钮的id)
编辑2
这是解决方案。似乎我的问题与本文中的相同。 http://jeffreypaarhuis.com/2011/08/08/validation-not-working-in-updatepanel/
答案 0 :(得分:4)
我正在发布解决方案,因为它可能对其他人有用。
“这就是问题所在: 当在页面上加载验证器时,它会创建一些javascript来支持客户端验证。当您将验证程序放在默认不可见的usercontrol中,并且此usercontrol位于updatepanel中时,它不会正确创建该javascript。 这是解决方案: 在updatepanel之外,我做了上面的操作,使用虚拟验证组创建了一个带有虚拟文本框的虚拟验证器,如下所示:“
<%--dummy validator to make ajax validation possible--%>
<asp:RequiredFieldValidator runat="server" CssClass="hidden" ControlToValidate="dummyTextBox" ValidationGroup="dummy"></asp:RequiredFieldValidator>
<asp:TextBox runat="server" ID="dummyTextBox" CssClass="hidden"></asp:TextBox>
我的问题似乎与this article中的问题相同。
答案 1 :(得分:2)
您是否尝试过此主题中的解决方案:
ASP.net RequiredFieldValidator not preventing postback
从web.config中删除以下行
<xhtmlConformance mode="Legacy"/>
“如果我删除该行,我的验证工作方式与我预期的方式相同.Google搜索时发现了一些博客文章,介绍了当将.net 1.1的网络应用程序从.net 1.1升级到.net时,VisualStudio如何将该行添加到web.config中3.5。
博客文章主要是抱怨该字段如何干扰.net的AJAX内容,但我猜测它以类似的方式为RequiredFieldValidator发出的JavaScript混乱。“
答案 2 :(得分:1)
请将ValidationGroup添加到验证器(valReqName)和按钮。
答案 3 :(得分:0)
将此属性添加到验证器。
EnableClientScript="True"