2013-01-21 44 views
0

我有一個表格,如: -的Javascript:檢查取消選中複選框分組

<form name="frmChkForm" id="frmChkForm"> 
     <input type="checkbox" name="modules[1]" onclick="checkgroup(this)" value="1">Module 1<br> 
     &nbsp;&nbsp;&nbsp;<input type="checkbox" name="units[1][1]">Unit 1 
     &nbsp;&nbsp;&nbsp;<input type="checkbox" name="units[1][2]">Unit 2 
     &nbsp;&nbsp;&nbsp;<input type="checkbox" name="units[1][3]">Unit 3<br> 
     <input type="checkbox" name="modules[2]" onclick="checkgroup(this)" value="2">Module 2<br> 
     &nbsp;&nbsp;&nbsp;<input type="checkbox" name="units[2][1]">Unit 4 
     &nbsp;&nbsp;&nbsp;<input type="checkbox" name="units[2][2]">Unit 5 
     &nbsp;&nbsp;&nbsp;<input type="checkbox" name="units[2][3]">Unit 6<br> 
     <input type="checkbox" name="modules[3]" onclick="checkgroup(this)" value="3">Module 3<br> 
     &nbsp;&nbsp;&nbsp;<input type="checkbox" name="units[3][1]">Unit 7 
     &nbsp;&nbsp;&nbsp;<input type="checkbox" name="units[3][2]">Unit 8 
     &nbsp;&nbsp;&nbsp;<input type="checkbox" name="units[3][3]">Unit 9 
</form> 

我要檢查/取消所有的每個模塊(主要複選框)下所包含的子複選框。

例如,如果我檢查「模塊1」,那麼只應檢查單元1,2和3,並取消選中「模塊1」,應該取消選中這些單元。同樣的事情應該適用於其他模塊。

我在尋找一個Javascript函數來執行此操作。

+1

3 ... 2 ... 1你嘗試過什麼? ;) –

+0

我看着谷歌,但沒有找到。 – sureyn

回答

4

試試這個

function checkgroup(obj){    
      var element = []; 
      var inputs = document.getElementsByTagName("input"); 

      for(var i = 0; i < inputs.length; i++) 
      { 
       if(inputs[i].name.indexOf('units[' + obj.value + ']') == 0) 
       { 
       element.push(inputs[i]); 
       } 
      } 

      if(obj.checked){ 
       for(i=0;i<element.length;i++){ 
        element[i].checked = true; 
       } 
      }else{ 
       for(i=0;i<element.length;i++){ 
        element[i].checked = false; 
       } 
      } 
     } 
+0

它的工作......謝謝 – sureyn

+0

如果這個答案是你正在尋找的,你應該接受這個答案;-) – hereandnow78

+0

@ hereandnow78:每次我被要求等待9分鐘才接受答案 – sureyn

相關問題