每次选中或取消选中时都会更新复选框

时间:2017-10-09 14:39:06

标签: javascript jquery checkbox

根据数据库中的值检查/取消选中6个复选框,取消选中第5个复选框,获取状态,我使用下面的代码段:

var allCheckboxes = $(':input[name="cc_checkbox"]').map(function () {
  return this.value;
}).get();

当我console.log(allCheckboxes)时,我得到["1", "1", "1", "1", "0", "1"]这是正确的。

但是当我选中/取消选中任意一个复选框并console.log(allCheckboxes)时,我仍然会["1", "1", "1", "1", "0", "1"]

这是正常的行为还是我需要使用其他语法?

1 个答案:

答案 0 :(得分:2)

问题是因为复选框的value始终存在。它不会根据元素是否被选中而改变。

要解决此问题,您可以将元素的checked属性改为:

var allCheckboxes = $(':input[name="cc_checkbox"]').map(function () {
  return this.checked;
}).get();

鉴于你的OP中的例子,这将给你一个数组输出:

[true, true, true, true, false, true]