禁用回发时,Asp.net按钮不会导致验证

时间:2014-01-09 09:01:12

标签: asp.net regex validation postback requiredfieldvalidator

我的页面上有一个表单。我想使用RequiredFieldValidator& RegularExpressionValidator验证电子邮件地址。

这是我的代码。

 <asp:TextBox ID="txtSubscribe" runat="server" CssClass="subscribe-textbox" placeholder="Your e-mail address"></asp:TextBox>
 <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="*Not valid e-mail address" ControlToValidate="txtSubscribe" CssClass="subscribe-form-error"></asp:RequiredFieldValidator>
 <asp:RegularExpressionValidator  ID="RegularExpressionValidator1" runat="server" ErrorMessage="*Not valid e-mail address" ControlToValidate="txtSubscribe" CssClass="subscribe-form-error" ValidationExpression="^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$"></asp:RegularExpressionValidator>
 <asp:Button ID="btnSubscribe" runat="server" Text="" CssClass="subscribe-button" CausesValidation="true" OnClientClick="Subscribe(); return false;" />

我想在客户端使用ajax发送电子邮件地址,并在客户端获取结果。我想使用asp正则表达式元素。

当我使用OnClientClick="Subscribe(); return false;"此代码禁用回发按钮时,验证属性将被禁用。

如何禁用按钮上的回发并导致验证?

2 个答案:

答案 0 :(得分:0)

  

onbutton客户端点击它验证,一切正确,它转到   服务器端代码,这里位于代码顶部,禁用按钮并在   底部启用按钮。

在使用updatepanels之前,我多次遇到过这个问题。

我发现如果需要对字段进行验证,那么您必须在元素上实际设置CausesValidation="true"才能使用updatepanels。

希望这会帮助你!

答案 1 :(得分:0)

使用Vignesh的回答:

<asp:Button ID="btnSubscribe" runat="server" Text="" CssClass="subscribe-button" CausesValidation="true" OnClientClick="Subscribe(); return false;" CausesValidation="true" />