ASP.NET使用HTML 5提交表单验证提交按钮

时间:2018-04-19 00:50:12

标签: asp.net html5 button webforms submit

我正在尝试使用HTML 5按钮元素来提交ASP.NET表单。我还希望它在点击时不会触发验证。这将提交表单,但仍会导致验证触发:

<button runat="server"
CausesValidation="false"
type="submit"
name="myButton"
id="myButton">Press Here</button>

我特意尝试不使用HTML输入或ASP:Button元素。它们都可以工作,但不允许在按钮文本中使用HTML(图像等..)。

我页面上的示例验证元素:

<asp:RequiredFieldValidator
ValidationGroup="myValGroup"
ControlToValidate="phone"
ID="phoneRequiredVal"
runat="server"
ErrorMessage="Phone is required."
Display="Dynamic"
CssClass="defaultErrorText"></asp:RequiredFieldValidator>

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

虽然您使用HTML标记(<button>)作为服务器端控件(<button runat="server" ...>),但ASP.NET服务器不希望此组件作为回发或回调发件人。因此,在表单提交期间,服务器端会发生事件验证错误。

要解决此问题,请使用ClientScriptManager.RegisterForEventValidation 方法将该按钮注册为回发发件人:

public partial class _Default : System.Web.UI.Page { protected override void Render(HtmlTextWriter writer) { Page.ClientScript.RegisterForEventValidation("myButton"); base.Render(writer); } }

答案 1 :(得分:0)

输入LinkBut​​ton控件。看起来这就是我需要提交表单,在标签中包含HTML,并且能够暂停验证:

<asp:LinkButton
runat="server"
CausesValidation="false"
CssClass="button fullWidth">Press Here</asp:LinkButton>

在这里找到: How do I make a form submit with a LinkButton?