【问题标题】:Access isvalid property of ASP.NET validators in Javascript在 Javascript 中访问 ASP.NET 验证器的 isvalid 属性
【发布时间】:2010-12-01 15:54:50
【问题描述】:

我已阅读here,任何 ASP.NET 验证器都有一个名为:isvalid 的属性。该属性可用于客户端检查验证器是否成功通过验证。

我尝试按以下方式访问此属性,但由于某种原因代码失败:

alert(document.getElementById("validator_clientID").isvalid);

您知道为什么这不起作用吗?

【问题讨论】:

  • 请发布验证器声明以及完整的 JavaScript。另外,请澄清“没有运气”的意思。你收到什么错误?使用您提供的方法显示 isvalid 属性的当前状态对我有用。我怀疑您使用的 id (validator_clientID) 不正确。
  • 我试过这样访问它并且它有效:bool flag = validatorname.isvalid;出于某种原因,通过对象直接访问 isvalid 是可访问的。但我不知道为什么使用 getElementById 获取元素没有检索到对象。我已经使用验证器 ID(而不是 ClientID)尝试了它的事件,但它仍然无法访问。我得到了未定义的值。

标签: asp.net forms validation


【解决方案1】:

我不认为 isvalid 直接在验证器控件上工作,因为这是一个服务器端验证功能。您可以使用客户端 javascript 函数 Page_ClientValidate 对当前页面或验证组进行验证器检查。您可以选择将验证组名称指定为参数。如果所有验证都通过,这将返回 true。

您还可以在 MSDN 上查看更多可用的客户端功能以及它们如何映射到服务器端功能:

http://msdn.microsoft.com/en-us/library/yb52a4x0.aspx

【讨论】:

  • @mnour 刚刚跟进,你有没有弄清楚这个问题?
  • 这对我有用。看起来像...var isValid = Page_ClientValidate();
【解决方案2】:

我也发现了!

试试这个document.getElementById('XXX').Validators[0].isvalid它对我有用

【讨论】:

    【解决方案3】:

    记得打电话

    IsValid
    

    改为

    isvalid
    

    (可能会有所不同)

    【讨论】:

      【解决方案4】:

      在客户端 Javascript:

      var controlIsValid = this.document.getElementById("validatorID").attributes.isvalid.value;
      

      【讨论】:

        【解决方案5】:

        请查看下面的解决方案,它遍历所有验证器并显示在客户端无效的验证器

        var varray=new Array(); 
        for (var i = 0; i < Page_Validators.length; i++)
         {
           if(!Page_Validators[i].isvalid)
            {
              varray.push(Page_Validators[i])
            }
         }
         varray;
        

        您可以将此代码粘贴到控制台以获取无效的验证器

        【讨论】:

          猜你喜欢
          • 2016-11-30
          • 1970-01-01
          • 1970-01-01
          • 2018-12-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-04-30
          • 2019-09-06
          相关资源
          最近更新 更多