2013-02-25 62 views
0

我有一個複選框的列表,我需要編寫一個javascript函數來找出所有的複選框被點擊。任何人都可以幫忙嗎?如何找到所有的複選框被選中

<input type="checkbox" name="check_group[]" id="name" /> name 
    <input type="checkbox" name="check_group[]" id="age" /> age 
    <input type="checkbox" name="check_group[]" id="school" /> school 
    <input type="checkbox" name="check_group[]" id="company"> company 

因此,如果我只點擊2,我需要知道哪些是我點擊的2,以便我可以發送服務器端處理。

回答

-2

你可以使用jQuery找到在JavaScript

alert($("check_group[]:[checked=checked]").length); 

選中的元素,然後你可以使用這些值來發送服務器端進行處理

+2

他要求JavaScript而不是jQuery – asifsid88 2013-02-25 12:05:52

0

有一個輸入類型按鈕和調用這個函數在它的點擊

function callMeOnButtonClick() 
{ 

    var selectedBox = document.querySelectorAll('input[name*=check_group]'); 
    // You may also use 
    // var selectedBox = document.getElementsByName('check_group[]'); 
    // The above two statements will give you the same result. i.e., array of checkboxes having name check_group[] 

    var count++; 
    for(var i=0; i<selectedBox.length; i++) 
    { 
     if(selectedBox[i].checked) 
     { 
      count++; 
      // Do processing 
     } 
    } 
    alert("Number of selected checkbox: "+count); 
} 
+1

所有複選框都有相同的名稱,所以'getElementsByName'似乎更合適,並且得到更廣泛的支持。 – RobG 2013-02-25 12:14:08

+0

對呀!更正我的代碼來計算選中的複選框:) @PeeHaa謝謝 – asifsid88 2013-02-25 12:19:14

1

鑑於複選框都具有相同的名稱,則可以使用函數,如:

function getChecked(name) { 
    var els = document.getElementsByName(name); 

    for (var i=0, iLen=els.length; i<iLen; i++) { 

    if (els[i].checked) { 
     // els[i] is checked, do stuff 
    } 
    } 
} 
相關問題