获取数组中所有选中的复选框

IT技术 javascript jquery ajax dhtml
2021-01-30 17:12:22

所以我有这些复选框:

<input type="checkbox" name="type" value="4" />
<input type="checkbox" name="type" value="3" />
<input type="checkbox" name="type" value="1" />
<input type="checkbox" name="type" value="5" />

等等。其中大约有 6 个并且是手工编码的(即不是从数据库中提取的),因此它们可能会在一段时间内保持不变。

我的问题是如何将它们全部放入一个数组中(在 javascript 中),以便我可以在$.post使用 Jquery发出 AJAX请求时使用它们

有什么想法吗?

编辑:我只想将选定的复选框添加到数组中

6个回答

格式化:

$("input:checkbox[name=type]:checked").each(function(){
    yourArray.push($(this).val());
});

希望它会起作用。

function get_selected_checkboxes_array(){ var ch_list=Array(); $("input:checkbox[type=checkbox]:checked").each(function(){ch_list.push($(this).val());}); return ch_list; }
2021-03-21 17:12:22
如果取消选中复选框,从数组中删除值该怎么办
2021-03-26 17:12:22
@JubinPatel 您只需要在此代码之前重置数组。 yourArray = []
2021-04-09 17:12:22
您还可以使用map而不是立即定义您的数组eachvar yourArray = $("input:checkbox[name=type]:checked").map(function(){return $(this).val()}).get()
2021-04-10 17:12:22

纯JS

对于那些不想使用 jQuery 的人

var array = []
var checkboxes = document.querySelectorAll('input[type=checkbox]:checked')

for (var i = 0; i < checkboxes.length; i++) {
  array.push(checkboxes[i].value)
}
是的,有时我们真的不想使用 jQuery
2021-03-15 17:12:22
总是喜欢香草 JS 答案。
2021-03-23 17:12:22
也是您的带有地图功能的香草 JS 解决方案。 Array.from(document.querySelectorAll("input[name='type']:checked")).map((elem) => elem.value)
2021-04-12 17:12:22
var chk_arr =  document.getElementsByName("chkRights[]");
var chklength = chk_arr.length;             

for(k=0;k< chklength;k++)
{
    chk_arr[k].checked = false;
} 
这只是遍历复选框并取消选中它们。正确答案,在VanillaJS中,请看下面zahid ullah的回答。
2021-03-29 17:12:22
据我了解上面的代码,它遍历所有复选框并取消选中它们。这个答案与问题有什么关系?
2021-04-05 17:12:22
这如何回答问题?这做了一些与所问的完全无关的事情。为什么有这么多赞?我是否遗漏了什么,或者在人们投票后对问题进行了编辑?
2021-04-08 17:12:22

我没有测试它,但它应该工作

<script type="text/javascript">
var selected = new Array();

$(document).ready(function() {

  $("input:checkbox[name=type]:checked").each(function() {
       selected.push($(this).val());
  });

});

</script>
推动在数组中添加值但取消选中要删除什么?
2021-03-28 17:12:22

ES6版本:

const values = Array
  .from(document.querySelectorAll('input[type="checkbox"]'))
  .filter((checkbox) => checkbox.checked)
  .map((checkbox) => checkbox.value);