2009-09-26 49 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;