2017-10-09 97 views
2

我有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

你能分享你的HTML吗?你的复选框中'value'属性的值是多少? –

回答

2

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

为了解决这个问题,你可以把元素的checked财产的阵列,而不是:

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

鉴于您的OP的例子,这将让你的阵列输出:

[true, true, true, true, false, true] 
相关问题