【问题标题】:ASP.NET Prevent Form Validation with HTML 5 Submit ButtonASP.NET 使用 HTML 5 提交按钮防止表单验证
【发布时间】:2018-09-29 08:44:06
【问题描述】:

我正在尝试使用 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>

有什么想法吗?

【问题讨论】:

  • 如何实现编辑器验证?
  • 我添加了我如何实现我的验证器。不确定您是否要求其他内容。
  • 我已经检查了您的代码,它不会导致客户端的表单验证。表格已正确提交。但是,我看到了事件验证错误。您是说事件验证问题吗?
  • 对我来说,当我单击按钮时,页面会重新加载(回发)并且验证器都会显示其错误消息。我希望验证器在单击此按钮时忽略它。当我将
  • 此时我最好的猜测是 ASP.NET 根本不支持 HTML 5 按钮元素。为我提交表单的唯一原因是它实际上是 HTML/浏览器执行表单提交和变量的发布,而 ASP 只是在后端使用它们。还有为什么 Causesvalidation="false" 没有做任何事情。如果有人能证实那就太好了。更多信息在这里:stackoverflow.com/questions/187482/…

标签: asp.net html button webforms submit


【解决方案1】:

输入 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?

【讨论】:

    【解决方案2】:

    尽管您使用 HTML 标记 (&lt;button&gt;) 作为服务器端控件 (&lt;button runat="server" ...&gt;),但 ASP.NET 服务器并不期望此组件作为回发或回调发送方。结果,在表单提交过程中,服务器端发生了Event Validation错误。

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

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

    【讨论】:

    • 我尝试将此代码添加到我的页面的类中,但它似乎对我的问题没有任何影响。
    猜你喜欢
    • 2016-02-07
    • 2016-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多