【问题标题】:Check if ValidationSummary is Valid using OnClientClick使用 OnClientClick 检查 ValidationSummary 是否有效
【发布时间】:2010-09-29 17:17:12
【问题描述】:

有没有办法在按钮的 OnClientClick 事件中使用 Javascript 来检查 ValidationSummary 控件的 IsValid 属性是否设置为 true?

我要做的是在上传页面上显示一条消息,上面写着“请稍候,您的文件正在上传”,但如果我使用 javascript 来显示该消息,即使 ValidationSummary 出现错误,它也会显示,因此该消息与下面的错误一起显示,这使用户感到困惑。

【问题讨论】:

    标签: asp.net javascript validation upload


    【解决方案1】:

    我想你应该做的是dissable the uppload button 并在上传过程中显示一条消息。例如,通过使用 ajax 面板和进度模板。

    【讨论】:

    • 问题不在上传过程中,而是在 ValidationSummary 控件给出用户必须纠正的错误时。我需要知道有一个错误并且不显示“等待”的 div
    【解决方案2】:

    我认为这会满足您的要求。

    var isValid = false;
    if (typeof(Page_ClientValidate) == 'function') 
    {
       isValid = Page_ClientValidate();
    }
    
    if(isValid)
    {
       ShowMessage(...);
    }
    

    【讨论】:

    • 另外,它会重新验证。我认为接受答案中的方法更好,因为它不应该有这些问题。
    【解决方案3】:

    如果其他人需要这样的东西,这是我的解决方案:

    在按钮的 OnClientClick 事件中,我正在调用一个名为 showContent() 的 JavaScript 函数。在这个函数中,我使用 setTimeout 调用第二个函数来检查页面的 IsValid 属性:

    function showContent() 
    {
        setTimeout("delayedShow()", 1);
    }
    
    function delayedShow() 
    {
        if (Page_IsValid != null && Page_IsValid == true) 
        {
           document.getElementById('divUploading').style.display = "block";
        }
    }
    

    Page_IsValidOnClientClick 事件中返回 true,因为 javascript 验证在此之后运行,因此 1 秒延迟允许正确设置 IsValid 属性。

    【讨论】:

    • 我认为Page_IsValid != null 检查是多余的。 == true 也是如此,因为 ASP.NET 似乎只将 truefalse 分配给 Page_IsValid。我认为您可以将条件简化为if (Page_IsValid)
    【解决方案4】:

    如果您在单个页面上有多个验证组,那么您应该只检查某个组:

    var isValid = Page_ClientValidate('GroupName');
    

    【讨论】:

      猜你喜欢
      • 2018-05-20
      • 2011-02-24
      • 2013-06-24
      • 2015-04-11
      • 2014-10-05
      • 1970-01-01
      • 2015-11-26
      • 2017-02-28
      • 2011-09-06
      相关资源
      最近更新 更多