【问题标题】:Overriding OnClientClick causing validation to fire multiple times覆盖 OnClientClick 导致验证多次触发
【发布时间】:2018-03-07 15:23:22
【问题描述】:

我试图阻止表单被多次提交。它使用验证摘要,因此我将覆盖提交按钮的 OnClientClick 事件。它按预期工作,显示错误列表的窗口被多次加载。

<asp:Button ID="btnSubmit" runat="server" 
            Text="Submit" 
            CausesValidation="False" 
            ValidationGroup="vgApplication" 
            OnClientClick=" if ( Page_ClientValidate() ) { this.value='Submitting..'; this.disabled=true; }" 
  />

【问题讨论】:

  • 好吧,很简单,因为您手动运行 Page_ClientValidate(),除了自动验证过程之外,这将导致第二次验证发生。请尝试检查布尔值 Page_IsValid。见msdn.microsoft.com/en-us/library/…
  • @ADyson 我将 CausesValidation 设置为 False。
  • 试试 CausesValidation="false" ?
  • @AntarrByrd 只是因为你编辑了这个问题,这是在我写了那条评论之后。

标签: c# asp.net vb.net webforms validationsummary


【解决方案1】:

问题是我的表单上有多个 ValidationGroup。所以我必须通过将名称传递给Page_ClientValidate() 来指定要运行的 ValdationGroup。

<asp:Button ID="btnSubmit" runat="server" 
            Text="Submit" 
            CausesValidation="False" 
            OnClientClick=" if ( Page_ClientValidate('vgApplication') ) { this.value='Submitting..'; this.disabled=true; }" 
  />

【讨论】:

  • 完全有道理,很高兴你解决了它
猜你喜欢
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-26
  • 1970-01-01
相关资源
最近更新 更多