2015-01-13 27 views
0

我想要一個鏈接按鈕,當按下時,將檢查/取消選中樹視圖上的所有複選框。我怎樣才能實現這個與Javascript?Javascript檢查/取消選中樹視圖的所有按鈕

我研究並找到了這段代碼,但我似乎無法使它工作。

function selectAllNone(value) { 
     var tvNodes = document.getElementById("Treeview1"); 
     var chBoxes = tvNodes.getElementsByTagName("input"); 
     for (var i = 0; i < chBoxes.length; i++) { 
      var chk = chBoxes[i]; 
      if (chk.type == "checkbox") { 
       chk.checked = value; 
      } 
     } 
     return false; 
    } 
+0

你看到什麼錯誤?你可以分享HTML嗎? – GVashist

+0

值未定義。 '的 <的ContentTemplate> 的 ' – MikeFerrer

回答

1

我有一些HTML測試你的功能,它的工作(我修改按鍵功能切換所有的複選框)

See JS Fiddle

function selectAllNone() { 
var tvNodes = document.getElementById("trvMenu"); 
var chBoxes = tvNodes.getElementsByTagName("input"); 
for (var i = 0; i < chBoxes.length; i++) { 
    var chk = chBoxes[i]; 
    if (chk.type == "checkbox") { 
     if(chk.checked == true) 
     { 
      chk.checked = false; 
     } 
     else if(chk.checked == false) 
     { 
      chk.checked = true; 
     } 
    } 
} 
return false; 
} 

<form method="POST"> 
<div id="trvMenu">  
    <input type="checkbox">check box 1</input><br> 
    <input type="checkbox">check box 2</input><br> 
    <input type="checkbox">check box 3</input><br> 
    <input type="button" onclick="selectAllNone()">Toggle Check Boxes</input><br> 
</div> 
</form> 
+0

很好,它工作@angrybirdnut,只需要將getElementById更改爲getElementById(「<%= Treeview1.ClientID%>」); 但是,如果你能再次幫助我,即使有一個複選框被選中,我也希望它全部選中它們,只有當它們都被選中時才切換它們。你能幫我解決嗎? – MikeFerrer

+0

@MikeFerrer我添加了複選框功能。看看這個JSFiddle:http://jsfiddle.net/angrybird/u8n8t7hh/25/ – 2147483647

+0

感謝您的幫助@angrybirdnut,但我想我沒有解釋自己的權利。我想要的是如果一個人選擇了一個或兩個複選框,然後點擊全選按鈕,它會選中所有的複選框。如果所有人都被選中並且該人點擊該按鈕,則它將全部取消選擇它們。希望我能說清楚。再次感謝您的幫助。 – MikeFerrer

相關問題