2009-09-26 30 views
7

我已阅读here任何ASP.NET验证器都有一个名为“isvalid”的属性。这个属性可以在客户端用来检查验证器是否成功通过了验证。访问Javascript中的ASP.NET验证器的属性无效

我试图访问该属性为以下但由于某些原因的代码失败:

警报(的document.getElementById(“validator_clientID”)的isValid);

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

+0

请发布验证声明以及完整的JavaScript。此外,澄清你的意思是“没有运气”。你收到什么错误?使用您提供的方法为我工作,显示isvalid属性的当前状态。我怀疑你使用的id(validator_clientID)是不正确的。 – Phaedrus 2009-09-26 14:36:46

+0

我试过像这样访问它,它的工作原理: bool flag = validatorname.isvalid; 由于某些原因,通过可直接访问的对象访问有效。但我不知道为什么使用getElementById获取元素没有检索到对象。我使用验证器ID尝试了它的事件 - 而不是ClientID - 并且它仍然无法访问。我有未定义的价值。 – mohammedn 2009-10-06 00:09:26

回答

2

我发现了一样!

试试这个document.getElementById('XXX').Validators[0].isvalid它的工作对我来说

3

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

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

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

+0

@mnour刚跟进,你有没有想过这个想法? – Kelsey 2010-08-18 16:14:33

+0

这对我有用。看起来像...... var isValid = Page_ClientValidate();' – Homer 2011-03-17 18:24:55

0

记得拨打

IsValid 

代替

isvalid 

(可能会发生变化)

0

在客户端的JavaScript:

var controlIsValid = this.document.getElementById(“validatorID”)。attributes.isvalid.value;