2011-06-03 28 views
3

我想提出一个网站,我已经喜欢与它相关联的电子邮件领域和验证表达式表单字段。验证是在文本更改时启动的。但我希望它执行“提交”按钮点击事件。 我已经搜索,但无法找到我的问题的解决方案。请告诉我为什么会发生这种情况,我该如何解决这个问题。我是这个网络开发领域的新手,所以需要你们的帮助。如何验证按钮点击表情在asp.net C#

在此先感谢!

哈马德

回答

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" /> 
+0

感谢的人这真的帮助! – Hamad 2011-06-03 18:19:41

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> 
+0

我不认为这是什么,他是问,当文本改变时,验证器验证,他询问如何不这样做,并验证它提交代替。 – stephenbayer 2011-06-03 17:57:00

2

你应该做的是改变EnableClientScript的假值。然后从后面的代码中调用验证(应始终这样做,因为用户可以禁止其客户端验证。安全规则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

+0

这是真正的答案。为我工作。谢谢 – Fandango68 2016-02-26 00:50:17

0

的按钮本身“导致验证”属性发射的其余部分之前将自动迫使你的网页,以满足您的验证规范与按钮按下相关的代码。

0

如果我明白你的问题,你需要创建一个相同的验证小组对每个在你的aspx页面验证控制。您还需要具有相同验证组的验证摘要。而atlast在提交按钮在.aspx页面就不得不提到同样的验证组...