Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查和取消检查不会自动进行_Javascript_Jquery_Web_Checkbox - Fatal编程技术网

Javascript 检查和取消检查不会自动进行

Javascript 检查和取消检查不会自动进行,javascript,jquery,web,checkbox,Javascript,Jquery,Web,Checkbox,在我的代码Jquery中,我使用了: $('#save').click(function (){ //Staff... $("input:checkbox").prop('checked', true); //Staff... } 另一方面,我有: $("input:checkbox").change(function(){ console.log('change ok'); }); 问题是,只有当我用鼠标检查时,才会检查取消选中,但当我单击save按钮(其代码

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

$('#save').click(function (){
    //Staff...
    $("input:checkbox").prop('checked', true);
    //Staff...
}
另一方面,我有:

$("input:checkbox").change(function(){
   console.log('change ok');
});
问题是,只有当我用鼠标检查时,才会检查取消选中,但当我单击
save
按钮(其代码在上面)时,什么也没有发生。
有什么建议吗?thnks

尝试此代码在
$(“输入:复选框”).prop('checked',true)
之后添加
.trigger(“更改”)
,如下所示:

$("input:checkbox").prop('checked', true).trigger("change")
对给定事件类型执行附加到匹配元素的所有处理程序和行为的强制

注意:您在第一个代码末尾也忘记了一个
。因此,更正的代码是:

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

您可以看看这个小提琴:

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

示例:
$(“输入:复选框”).prop('checked',true.).trigger('change')


再次调用
change
功能

 $('#save').click(function (){
  //Staff...
  $("input:checkbox").prop('checked', true).change();
  //Staff...
}); //<---- notice missing closing bracket()
$('#保存')。单击(函数(){
//职员。。。
$(“输入:复选框”).prop('checked',true).change();
//职员。。。

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

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

文档。

是否检查了单击事件处理程序是否实际执行?这是事实,也是一个常见的陷阱。