这是我的问题,我想检查使用JQuery创建一个已检查的所有复选框的数组。每次选中或取消选中复选框时,我都会执行此操作。所以我用这段代码做我想做的事:
$(document).ready(function(){
$(":checkbox").change(function() {
CBChange();
});
});
function CBChange()
{
$(":checkbox:checked").each(function() {
alert("checked");
});
}
问题是“我认为”在单击的复选框更改其状态之前执行此操作。因此,例如,如果我有四个复选框全部选中并且我取消选中一个,则警报消息将弹出四次,就像脚本执行之前设置复选框以取消选中一样。
我只需要一种方法来实现它。如果我们采用与上面相同的示例,我想要的结果是,对于剩余的复选框,该消息仅弹出3次,然后选中。
提前致谢, 我!
答案 0 :(得分:1)
问题是“我认为”在单击的复选框更改其状态之前执行此操作。因此,如果我有四个复选框全部选中并且我取消选中一个,则警报消息将弹出四次。
你是什么意思“我想”?你试过的时候发生了什么?在状态更新后,应该触发更改事件,实际上这对我来说总是有用。因此,在您的示例中,如果检查了所有四个并且您取消选中一个警报应该显示三次。
以下是您的代码的小提琴:http://jsfiddle.net/nnnnnn/tMtwX/
或者这是另一个演示相同效果的演示,没有警告信息的烦恼:http://jsfiddle.net/nnnnnn/WnHBx/
或者,如果您在更改处理程序中说alert(this.checked);
,您将看到刚刚更改的特定复选框的当前状态...
答案 1 :(得分:0)
制作包含所有已检查项目的数组
$(document).ready(function(){
$(":checkbox").change(function(e) {
var items=$(":checkbox:checked");
console.log(items);
});
});
Here是一个小提琴。
答案 2 :(得分:-2)
你有错误的选择器试试
$(document).ready(function(){
$("checkbox").change(function() {
CBChange();
});
});
function CBChange()
{
$("checkbox:checked").each(function() {
alert("checked");
});
}