如何在ASP.NET C#中通过按钮点击验证表达式

3
我正在制作一个网站,我已经创建了像电子邮件字段和与之相关的验证表达式的表单字段。验证是在文本更改时启动的。但我想在“提交”按钮点击事件上执行它。
我已经搜索过了,但找不到解决我的问题的方法。请告诉我为什么会出现这种情况,以及如何解决它。我是这个网站开发领域的新手,所以需要你们的帮助。
提前感谢!!!
Hamad
6个回答

6
您可以在验证器本身中禁用显示错误,并改为创建一个验证摘要,只有在单击提交后才会显示该摘要。
就像这样:
<asp:RequiredFieldValidator runat="server" ControlToValidate="txtEmail" ValidationGroup="vRegister" Display="None" ErrorMessage="Email field cannot be empty"></asp:RequiredFieldValidator>

然后声明一个验证摘要:

<asp:ValidationSummary runat="server" ID="vSummary" ValidationGroup="vRegister" DisplayMode="BulletList" />

4
你需要做的是将EnableClientScript的值更改为false。然后从你的代码后台调用验证(这应该总是要做的,因为用户可以禁用他们的客户端验证。安全规则1,永远不要相信客户端)。
EnableClientScript:获取或设置一个值,指示是否启用客户端验证。
 <asp:TextBox ID="txtName" runat="server"></asp:TextBox>
 <asp:RequiredFieldValidator ID="rfvName" runat="server" EnableClientScript="false"
 ErrorMessage="*" ControlToValidate="txtName" ></asp:RequiredFieldValidator>

代码后台:

   protected void btnSave_Click(object sender, EventArgs e)
   {
          if (Page.IsValid)
             {
               //Do stuff
             }
             //No need for else, the validations should display accordingly
   }

额外资源:http://weblogs.asp.net/rajbk/archive/2007/03/15/page-isvalid-and-validate.aspx

这篇博客介绍了ASP.NET中的Page.IsValid和Validate()方法。当进行表单提交时,可以使用这些方法来验证用户输入是否有效。这是一个非常重要的IT技术,因为它有助于确保应用程序的安全性和稳定性。如果您想了解更多信息,请点击上面提供的链接。

这是真正的答案。对我有用。谢谢。 - Fandango68

1

您是否只是想要使用验证类型控件来验证输入?如果是这样,请查看属性EnableValidation并将其设置为true。这样做将强制在button_Click事件执行之前验证文本框。


1

试试这个:

 <asp:TextBox ID="txtName" runat="server" Height="23px" 
 Width="252px"></asp:TextBox>
 <asp:RequiredFieldValidator ID="rfvName" runat="server" 
 ErrorMessage="*" ControlToValidate="txtName" 
 ValidationGroup="vadd"></asp:RequiredFieldValidator>

我不认为这就是他想问的。验证器在文本更改时进行验证,但他想知道如何避免这种情况,而是在提交时进行验证。 - stephenbayer

0
按钮本身的“Causes Validation”属性将自动强制您的页面在触发与按钮按下相关联的其余代码之前满足验证规范。

0
如果我理解您的问题,您需要为aspx页面中的每个验证控件创建相同的验证组。您还需要具有具有相同验证组的验证摘要。最后,在aspx页面中的提交按钮中,您必须提到相同的验证组...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接