2011-12-19 35 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'); 
相关问题