2011-10-14 31 views
2

我有以下HTML:如何檢查的HTML網頁上的所有複選框與點擊(複選框陣列)

<form name="smform" id="smform" method="post" action=""> 
     <input type="checkbox" name="Check_All" onClick="Check(document.smform.check)" > 

    <input type="checkbox" name="check" value="blue_color"> Blue<br> 
    <input type="checkbox" name="check" value="green_color"> Green<br> 
    <input type="checkbox" name="check" value="orange_color"> Orange<br> 
</form> 

隨着這個JS:

function Check(chk) 
    { 
     if(document.smform.Check_All.checked){ 
     for (i = 0; i < chk.length; i++) 
     chk[i].checked = true ; 
     document.smform.Check_All.checked = true; 
    }else{ 

     for (i = 0; i < chk.length; i++) 
     chk[i].checked = false ; 
     document.smform.Check_All.checked = false; 
    } 
} 

,和本是做工精細,我可以選擇或取消選擇所有的複選框,但爲了發佈此作爲ARRAY,我的複選框將有name="check[]"這樣的:

 <input type="checkbox" name="check[]" value="blue_color"> Blue<br> 
    <input type="checkbox" name="check[]" value="green_color"> Green<br> 
    <input type="checkbox" name="check[]" value="orange_color"> Orange<br> 

但在這種情況下,我的JS不工作。我該如何適應這個JS,因此它可以與name="check[]"一起使用?

所有幫助表示讚賞。

回答

5

只是不使用點符號,而不是用方括號的字符串:

onClick="Check(document.smform['check[]'])" 

活生生的例子:http://jsfiddle.net/5JCMS/

+0

謝謝@Jamiec。 – Adnan

+0

@Adnan - 最歡迎:) – Jamiec

-3

使用jquery。您可以將類添加到所有要檢查

<input type='checkbox' class='autocheckable someOtherClass' />Blue 

的複選框,然後這裏描述做:Setting "checked" for a checkbox with jQuery?

+1

它被認爲是一個主要的罪過來回答一個問題,而不是與jQuery的答案'jQuery'。 – Jamiec

+1

jQuery以外的JavaScript – Matt

+0

儘管這給出了使用標準javascript中的類的想法/建議,然後調用該類來檢查複選框,但是OP可以在沒有jQuery的情況下使用它。 – jackJoe

2

可以使用getElementsByTagName讓所有複選框

var inputs = document.getElementsByTagName("input"); 
Check(inputs); 
    function Check(chk) 
     { 
      if(document.smform.Check_All.checked){ 
       for (i = 0; i < chk.length; i++){ 
       if(inputs[i].type == "checkbox"){ 
        chk[i].checked = true ; 
       } 
       } 
      document.smform.Check_All.checked = true; 
     }else{ 

      for (i = 0; i < chk.length; i++){ 
       if(inputs[i].type == "checkbox"){ 
      chk[i].checked = false ; 
      } 
      } 
      document.smform.Check_All.checked = false; 
     } 
    } 
相關問題