【问题标题】:how can i call a javascript function when an ASP.net validation summary is filled填写 ASP.net 验证摘要时如何调用 javascript 函数
【发布时间】:2011-03-04 20:45:30
【问题描述】:

我的页面中有一个validationSummary。我想在validationSummary 填充后调用一个javascript 函数。我怎样才能做到这一点?

我想我应该在后面的代码中添加一个属性,但我不知道该属性的键是什么。

有什么帮助吗?

【问题讨论】:

    标签: c# asp.net validationsummary


    【解决方案1】:

    我认为这是不可能的。但是,可以通过在执行回发的控件上设置 OnClientClick 来拦截验证。然后您可以检查全局 JavaScript 变量 Page_IsValid 以获得验证结果。

    要记住的一点是,当页面上没有验证器时,Page_IsValid 将是未定义的。

    【讨论】:

      【解决方案2】:

      您将需要调用 javascript 函数 Page_ClientValidate() 来启动连接到您的页面控件的 ASP.NET 验证。一旦调用,Page_IsValid 布尔值将被正确设置。

      这是我如何使用它的示例。如果 ASP.NET 验证成功,我禁用该按钮,否则该按钮保持启用状态并向用户显示验证摘要。 OnClientClick 来自 ASP:Button 控件。

      OnClientClick="javascript:Page_ClientValidate(); if (Page_IsValid==true) { this.disabled=true; }"
      

      【讨论】:

      • 这似乎有效,但实际上它会打印两次 ValidationSummary 的 ShowMessageBox :(
      【解决方案3】:

      我开始通过@EverettEvola 实现该解决方案,但同时验证逻辑被多次调用并显示多个ValidationSummary 弹出窗口。我的解决方案如下:

      在按钮上(在我的例子中,按钮是提交按钮)

      OnClientClick="return CustomValidationOnClick()"
      

      还有 CustomValidationOnClick()

      function CustomValidationOnClick(source, args) {
      
          //Manually kickoff page validation
          //This call will display the Validation summary popup if page is invalid
          Page_ClientValidate();
      
          //Page_IsValid set by the result of the Page_ClientValidate() call
          if (Page_IsValid == true) {
              this.disabled=true;
              return true; //if Submit button return true to continue form submit
          }
          else {
             //do whatever here
             return false; //if Submit button return false to cancel form submit
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-07
        • 2012-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-04
        • 2012-03-10
        • 2021-09-25
        相关资源
        最近更新 更多