更新复选框每次检查或取消选中
问题描述:
我有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"]
这是一个正常的行为或者是有一些其他的语法,我需要使用?
答
问题是因为复选框的value
始终存在。它不会根据元素是否被选中而改变。
为了解决这个问题,你可以把元素的checked
财产的阵列,而不是:
var allCheckboxes = $(':input[name="cc_checkbox"]').map(function() {
return this.checked;
}).get();
鉴于您的OP的例子,这将让你的阵列输出:
[true, true, true, true, false, true]
你能分享你的HTML吗?你的复选框中'value'属性的值是多少? –