【问题标题】:Can I call a function after a ValidationSummary?我可以在 ValidationSummary 之后调用函数吗?
【发布时间】:2011-12-15 17:18:54
【问题描述】:

我在客户端有一个ValidationSummary(应该由 asp:LinkBut​​ton 调用)来检查我的RequiredFieldValidatorCustomValidator

<asp:ValidationSummary 
    ID="valSum" 
    runat="server" 
    CssClass="label" 
    HeaderText="There are these errors:" 
    ShowSummary="False" 
    ShowMessageBox="True" 
    EnableClientScript="True" 
    DisplayMode="BulletList">
</asp:ValidationSummary>

我需要,如果有错误(所以有空字段或自定义验证器失败)调用另一个 javascript 函数。

我真的希望这在 .NET 3.5 上是可能的,对吧?

我在 SO here 上读过类似的问题,但完全不清楚。

【问题讨论】:

    标签: c# javascript .net validation


    【解决方案1】:

    将此脚本放在页面末尾:

    <script type="text/javascript">
         var originalValidationSummaryOnSubmit = ValidationSummaryOnSubmit;
         ValidationSummaryOnSubmit = function (validationGroup) {
              originalValidationSummaryOnSubmit(validationGroup);
    
              if (Page_IsValid === false) {
                   alert("boo!");
              }
         }
    </script>
    

    【讨论】:

    • 太棒了!解决了我的问题!一问:validationGroupValidationSummaryOnSubmit的唯一参数吗?如何获取触发验证的按钮的名称/ID?
    【解决方案2】:

    是的,这是可能的。您将需要更改链接按钮和/或其他导致执行验证的控件的 OnClientClick 属性。还将您的 CausesValidation 属性设置为 false。

      <asp:LinkButton ID="lnkButton1" runat="server" CausesValidation="false" OnClientClick="return DoValidation('');" ... />
    

    Javascript 函数:

     function DoValidation(validationGroup) {
          var isValid = Page_ClientValidate(validationGroup);
          if (!isValid){
             isValid = DoSomethingElse();
          }
         return isValid;
     }
    

    如果您只想验证一个组,您可以将组的名称传递给“DoValidation”函数。

      <asp:LinkButton ID="lnkButton1" runat="server" CausesValidation="false" OnClientClick="return DoValidation('NameOfGroup');" ... />
    

    【讨论】:

    • 将示例更新为无效。很抱歉。
    • 它还为验证器摘要调用了两次 ShowBox,这就是为什么在调用 return DoValidation(''); 之后需要一个 return false; 无论如何谢谢,它有效!
    • 即使您使用 CausesValidation="false"。请告诉我,以便我更新答案。
    • 你也可以让 DoSomethingElse 返回 false。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多