2011-12-19 65 views
32

我有一組輸入複選框 ,我想確定哪些複選框已經使用javascript進行檢查,我該如何實現這一點? 我只知道如何讓所有的複選框,如下所示:如何獲取所有選中的複選框

var checkboxes = document.getElementsByName('mycheckboxes'); 
+1

是已經有,但所有的人,解決的辦法是使用jQuery,我需要一個簡單的JS解決方案,這就是區別。 – 2011-12-19 15:27:28

+0

看看下面的過程http://stackoverflow.com/questions/1543017/javascript-check-all-checkboxes-in-a-table-asp-net – Lijo 2014-05-22 19:24:58

回答

68

一個簡單的for循環,其測試checked財產並追加檢查的人到一個單獨的數組。從那裏,如果需要,您可以進一步處理checkboxesChecked陣列。

// Pass the checkbox name to the function 
function getCheckedBoxes(chkboxName) { 
    var checkboxes = document.getElementsByName(chkboxName); 
    var checkboxesChecked = []; 
    // loop over them all 
    for (var i=0; i<checkboxes.length; i++) { 
    // And stick the checked ones onto an array... 
    if (checkboxes[i].checked) { 
     checkboxesChecked.push(checkboxes[i]); 
    } 
    } 
    // Return the array if it is non-empty, or null 
    return checkboxesChecked.length > 0 ? checkboxesChecked : null; 
} 

// Call as 
var checkedBoxes = getCheckedBoxes("mycheckboxes"); 
+1

我確實支持這個解決方案。 +1給我。這是純JavaScript,它的工作原理。 – 2011-12-19 15:11:52

+2

+1是一個純粹的JS解決方案 – 2011-12-19 15:18:25

+0

如何使它作爲一個實用的JS方法,將返回檢查值的數組,如果沒有人被檢查爲空? – 2011-12-19 15:24:40

45

在IE9 +,Chrome或Firefox,你可以這樣做:

var checkedBoxes = document.querySelectorAll('input[name=mycheckboxes]:checked'); 
相關問題