我遇到了我构建的图像按钮的问题。当我将必需的字段验证器附加到页面时,它们会停止触发按钮onclick事件。我对此非常困惑,因为我在代码中看不到任何问题!
请你把目光投向这个并帮助我吗?
干杯
<asp:TextBox ID="TB_Newsletter" runat="server" CssClass="nwsltr-input"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ValidationGroup="V1" runat="server" Display="Dynamic" ControlToValidate="TB_Newsletter" ErrorMessage="You must enter your email address"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1"
runat="server" ValidationGroup="V1" Display="Dynamic"
ValidationExpression="^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$"
ErrorMessage="Invalid Email Address" ControlToValidate="TB_Newsletter"></asp:RegularExpressionValidator>
<asp:ImageButton ID="IB_SubScri"
ImageUrl="~/_includes/images/buttons/nwsltr-btn.png" runat="server"
onclick="IB_SubScri_Click" CausesValidation="True" ValidationGroup="V1"/>
答案 0 :(得分:4)
当您按下按钮时,它会提交表单,但在此之前,字段验证程序将通过脚本触发 - 如果验证失败,表单将不会发布。 <asp:Imagebutton />
和<asp:Button />
类型允许您在按下时禁用验证:
<asp:ImageButton ... CausesValidation="False"/>
来自CausesValidation
媒体资源上的MSDN:
如果控件导致验证,则为true 在任何控件上执行 收到时要求验证 焦点;否则,错误。默认 是的。
有关详细信息,请参阅此MSDN reference。
显然,我们在此假设不需要在按下此按钮时触发验证器。
答案 1 :(得分:3)
在ImageButton上将“CausesValidation”更改为False