2011-10-03 49 views
3

我想做一個javascript函數來檢查未選中的複選框。我現在的功能,檢查所有未選中的複選框,我需要的是隻檢查特定的GridView未選中的複選框如何檢查屬於GridVIew的複選框?

function checar() {  
    var el = document.getElementsByTagName("input"); 
    for (var i = 0; i < el.length; i++) { 
     if (el[i].type == "checkbox") { 
      el[i].checked = true; 
     } 
    } 
} 

回答

2

你要首先限制您的搜索元素的範圍。這樣做的一種方法是使用的div使用的getElementById

function checar() { 
var grd = document.getElementById("<%=grd.ClientID%>"); // <-- Add this line 
var el = grd.getElementsByTagName("input"); // <-- change the scope of this to grd 
//rest of your code here. 
} 

樣品,但你會得到的想法,我認爲:http://jsfiddle.net/8LRkk/

編輯包括設定具體的網格ID。

+0

是的,我看到它之前,我問這裏,我嘗試這個解決方案,但VAR GRD,返回null。 –

+0

請確保您正在放置GridView的實際渲染ID,而不是代碼中設置的內容,例如document.getElementById(「<%= grd.ClientID%>」); –

+0

我嘗試了兩種方法,都返回null –

0

要獲得特定gridview的所有複選框,您需要獲取其中的ClientID包含gridview的部分ClientID的複選框,因爲所有控件都有一個「堆疊」的id。

你的功能應該工作作爲基礎,它只是需要有它的一個附加的檢查:

function checar() {  
    var el = document.getElementsByTagName("input"); 

    // Get the client id of the gridview from ASP here 
    var gvID = '<%= this.myGridview.ClientID %>'; 

    for (var i = 0; i < el.length; i++) { 
     // Call the id of the checkbox and check to see if it 
     // contains the client id of the gridview at the same time 
     if (el[i].type == "checkbox" && el.id.indexOf(gvID) != -1) { 
      el[i].checked = true; 
     } 
    } 
} 
+0

此示例將獲得所有複選框?因爲我需要點擊「全選」按鈕,然後全部選中。 –

+0

@Lucas_Santos:不,當我讀到你的問題時,聽起來像你需要從gridview檢查一個複選框。我會調整我的答案以匹配網格中的所有複選框。 –

+0

@Lucas_Santos:更新已發佈。 –

相關問題