asp:RequiredFieldValidator使用空字段进行回发

时间:2012-07-30 05:39:46

标签: asp.net validation

我的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/

4 个答案:

答案 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"