我可以在ValidationSummary之后调用函数吗?

本文关键字:函数 调用 之后 ValidationSummary 我可以 | 更新日期: 2023-09-27 18:12:21

我在客户端有一个ValidationSummary(应该由asp:LinkButton调用),检查我的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上是可能的,对吧?

我在这里读过一个类似的问题,但不清楚。

我可以在ValidationSummary之后调用函数吗?

将此脚本放置在页面末尾:

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

这是可能的。您需要更改链接按钮和/或其他控件的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');" ... />