检查和取消选中不会自动进行

时间:2013-07-22 10:53:39

标签: javascript jquery web checkbox

在我的代码Jquery中,我使用了:

$('#save').click(function (){
    //Staff...
    $("input:checkbox").prop('checked', true);
    //Staff...
}

另一方面,我有:

$("input:checkbox").change(function(){
   console.log('change ok');
});

问题是检查取消选中只会在我用鼠标检查时发生,但是当我点击save按钮(其代码在上面)时,没有任何反应。 有什么建议? thnks

4 个答案:

答案 0 :(得分:3)

以编程方式更改属性不会自动调用change事件,您必须手动调用它:

$("input:checkbox").prop('checked', true).trigger('change');

.trigger()的文档。

答案 1 :(得分:2)

尝试使用此代码在.trigger("change")之后添加$("input:checkbox").prop('checked', true),如下所示:

$("input:checkbox").prop('checked', true).trigger("change")

trigger method强制执行附加到给定事件类型的匹配元素的所有处理程序和行为

注意:您在第一个代码的末尾也忘记了)。所以纠正的代码是:

$('#save').click(function (){
    //Staff...
    $("input:checkbox").prop('checked', true).trigger("change")
    //Staff...
})

你可以看看这个小提琴:http://jsfiddle.net/LpC85/

答案 2 :(得分:1)

要自动触发事件,您需要在jQuery中使用trigger()

实施例:$("input:checkbox").prop('checked', true).trigger('change');

SEE HERE

答案 3 :(得分:1)

再次调用change函数。

 $('#save').click(function (){
  //Staff...
  $("input:checkbox").prop('checked', true).change();
  //Staff...
}); //<---- notice missing closing bracket()