Javascript中ASP.NET验证程序的Access isvalid属性

Javascript中ASP.NET验证程序的Access isvalid属性,asp.net,forms,validation,Asp.net,Forms,Validation,我已经了解到,任何ASP.NET验证程序都有一个名为:isvalid的属性。此属性可在客户端用于检查验证程序是否成功通过验证 我尝试按以下方式访问此属性,但由于某些原因代码失败: alert(document.getElementById("validator_clientID").isvalid); 你知道为什么这不起作用吗 我认为isvalid不能直接在验证器控件上工作,因为这是一个服务器端验证功能。您可以使用客户端javascript函数page\u ClientValidate对当前页

我已经了解到,任何ASP.NET验证程序都有一个名为:
isvalid
的属性。此属性可在客户端用于检查验证程序是否成功通过验证

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

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

你知道为什么这不起作用吗

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

您还可以查看更多可用的客户端函数,以及它们如何映射到MSDN上的服务器端函数,网址为:

我找到了同样的

请尝试此
文档。getElementById('XXX')。验证器[0]。isvalid
对我有效

记得调用

IsValid
反而

isvalid

(可能会有所不同)

在客户端Javascript上:

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

请看一下下面的解决方案,该解决方案迭代所有在客户端无效的验证器和显示验证器

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

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

请发布验证器声明以及完整的JavaScript。另外,澄清你所说的“没有运气”是什么意思。你收到了什么错误?使用您提供的方法显示isvalid属性的当前状态对我很有用。我怀疑您正在使用的id(validator\u clientID)不正确。我尝试过这样访问它,它可以正常工作:bool flag=validatorname.isvalid;出于某种原因,可以通过对象直接访问isvalid。但是我不知道为什么使用getElementById获取元素时没有检索到对象。我用验证器ID(而不是ClientID)尝试了它的事件,但它仍然不可访问。我得到了一个未定义的值。@mnour刚刚跟进,你有没有弄明白这个?这对我很有用。看起来
var isValid=Page_ClientValidate()