题 如何获取所有选中的复选框


我有一组具有相同名称的输入复选框 我想确定使用javascript检查了哪些复选框,我该如何实现? 我只知道如何获取所有复选框如下:

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

35
2017-12-19 15:06


起源


是的,已经有了所有这些,解决方案是使用JQuery,我需要一个简单的JS解决方案,这就是区别。 - Sameh Farahat
看看下面也是如此 stackoverflow.com/questions/1543017/... - Lijo


答案:


一个简单的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");

77
2017-12-19 15:09



我支持这个解决方案。 +1给我。这是简单的JavaScript,它的工作原理。 - Federico Zancan
+1是一个纯粹的JS解决方案 - Joeri Hendrickx
如何使它作为一个util JS方法返回已检查值的数组,如果没有选中则返回null? - Sameh Farahat
@SamehFarahat看到我上面的变化.. - Michael Berkowski
你不需要'返回checkboxesChecked'吗? - jward01


在IE9 +,Chrome或Firefox中,您可以执行以下操作:

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

53
2018-06-29 10:23