【发布时间】:2014-06-03 21:15:30
【问题描述】:
我终其一生都无法弄清楚如何防止我的表单进行回发。我在 ASP.NET 4.5 和 C#(Web 应用程序项目,而不是网站)中。我已经在几个版本的 ASP.NET 中有效地做到了这一点,但我不知道如何防止对简单的必填字段验证进行回发。一旦表单刷新,验证就会起作用。这是我的代码:
<label for="MainContent_txtName" class="required">Name</label>
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqName" runat="server" ErrorMessage="Required field" ControlToValidate="txtName" EnableClientScript="true" ValidationGroup="contact" />
<label for="MainContent_txtEmail" class="required">Email Address</label>
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
<label for="MainContent_txtPhone">Phone Number</label>
<asp:TextBox ID="txtPhone" runat="server"></asp:TextBox>
<label for="MainContent_txtComment" class="required">Question or Comment</label>
<asp:TextBox ID="txtComment" TextMode="multiline" runat="server" />
<asp:Button ID="btnSubmit" runat="server" Text="submit" OnClick="btnSubmit_Click" CausesValidation="true" ValidationGroup="contact" />
我试过不使用 ValidationGroup、CausesValidation 和 EnableClientScript(每个都有几个变体)。此外,还有一个将其包装在母版页中的表单。我只是想在提交表单之前简单地验证客户端的字段不为空。任何帮助表示赞赏。我想我公然遗漏了一些简单的东西。
【问题讨论】:
-
能否只处理表单提交事件客户端,如果验证失败则返回false?
-
将按钮的代码包装在更新面板中,这可能是一个很好的开始按钮单击将始终触发回发,如果我正确地关注您的问题,还请查看 __DoPostBack() 并使用 JavaScript 如果您喜欢如果失败则返回 else 做某事
-
什么是“表单刷新后验证正在工作。”究竟是什么意思?
-
我有一段时间没有做过 WebForms,但是 JavaScript 中的预验证是验证器的关键点之一。那么你如何验证行为,什么浏览器(-版本),是否启用了 JavaScript?
-
@HenkHolterman 很抱歉造成混乱。当页面完成回发=表单刷新时。
标签: c# asp.net validation