【问题标题】:ASP.NET Validation Summary: How to disable validator with JavaScript?ASP.NET 验证摘要:如何使用 JavaScript 禁用验证器?
【发布时间】:2010-01-27 16:57:29
【问题描述】:

我想使用 JavaScript 禁用 ASP.NET RequiredFieldValidator。实际上我正在使用以下代码:

function doSomething() 
{ 
  var myVal = document.getElementById('myValidatorClientID'); 
  ValidatorEnable(myVal, false);  
} 

这会禁用验证器。 但我的问题是,我使用的是 ValidationSummary。即使我禁用了验证器,此摘要也会显示验证消息。

谁能告诉我,如何也禁用 ValidationSummary 中的验证器?

【问题讨论】:

  • 为什么不一起删除验证器?
  • 我认为 Ram 是对的……你必须完全删除它。

标签: asp.net javascript


【解决方案1】:

解决方案是在禁用验证器后添加对 ValidationSummaryOnSubmit() 的调用。

function doSomething()  
{  
    var myVal = document.getElementById('myValidatorClientID');  
    ValidatorEnable(myVal, false);   
    ValidationSummaryOnSubmit();
}

您可以在开发计算机上找到一个名为 WebUIValidation.js 的文件,其中包含 ASP.NET 验证过程使用的客户端 JavaScript 函数。这些函数的名称很好,而且通常很容易弄清楚它们各自的作用。

【讨论】:

  • 嘿杰森!谢谢,我明天试试。 :)
【解决方案2】:

也许您可以尝试设置 EnableClientScript=true; 并在禁用验证器时通过将其 css 显示样式设置为 none 来隐藏摘要。摘要呈现为 div 并在未显示摘要时隐藏。

【讨论】:

  • 这行不通。 EnableClientScript 只影响页面的呈现方式……之后就没用了。 Torben 需要在客户端禁用验证器。
【解决方案3】:

查看为客户端的验证器生成的 javascript 代码。我相信您必须从“Page_Validators”数组中删除验证器跨度。元素 ID 将与验证器 ID 匹配。

这只是一个理论。 :) 让我们知道它是否有效,因为我很感兴趣。

【讨论】:

    【解决方案4】:

    ValidatorEnable() 对我不起作用,但确实如此

    document.getElementById("<%=RequiredFieldValidatorId.ClientID %>").enabled = true;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-28
      • 2012-09-05
      • 2012-05-02
      • 1970-01-01
      • 2011-03-04
      • 1970-01-01
      • 2015-11-04
      • 1970-01-01
      相关资源
      最近更新 更多