根据数据库中的值检查/取消选中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"]
这是正常的行为还是我需要使用其他语法?
答案 0 :(得分:2)
问题是因为复选框的value
始终存在。它不会根据元素是否被选中而改变。
要解决此问题,您可以将元素的checked
属性改为:
var allCheckboxes = $(':input[name="cc_checkbox"]').map(function () {
return this.checked;
}).get();
鉴于你的OP中的例子,这将给你一个数组输出:
[true, true, true, true, false, true]