我有多个复选框,当选中所有复选框时 - 它们会检查父复选框。选中该父复选框后,将触发警报并且图像在...中消失
问题是,当使用jquery检查父复选框时,它们不会显示警报或交换图像,仅在手动选中复选框时才有效。
这是我的代码: //父复选框 - 多个复选框
$("input[type='checkbox'].PARENT-CHECKBOXES").change(function(){
var a = $("input[type='checkbox'].PARENT-CHECKBOXES");
if(a.length == a.filter(":checked").length){
alert('ACTION COMPLETED');
TweenMax.to("#fade-in-image", 0.1, {autoAlpha: 1});
}
});
// Child Checkboxes -multiple checkboxes
$("input[type='checkbox'].CHILD-CHECKBOX").change(function(){
var step1 = $("input[type='checkbox'].CHILD-CHECKBOX");
if(step1.length == step1.filter(":checked").length){
alert('SKU OPERATION COMPLETE');
$("#PARENT-CHECKBOX1").prop("checked", true);
}
});
编辑:所以我编辑了我的代码,这是工作结果。
var a = $("input[type='checkbox'].PARENT-CHECKBOXES");
$("input[type='checkbox'].CHILD-CHECKBOX").change(function(){
var step2 = $("input[type='checkbox'].CHILD-CHECKBOX");
if(step2.length == step2.filter(":checked").length){
alert('Operation Complete');
$("#PARENT-CHECKBOX1").prop("checked", true).change();
}
if(a.length == a.filter(":checked").length){
alert('ACTION COMPLETED');
TweenMax.to("#fade-in-image", 0.1, {autoAlpha: 1});
}
});
答案 0 :(得分:2)
以编程方式选中/取消选中复选框时,它不会自动触发(如您所见)。您需要使用.trigger()
来触发更改事件。
码
$("#PARENT-CHECKBOX1").trigger("change");
或
$("#PARENT-CHECKBOX1").change();
答案 1 :(得分:2)
您需要在检查后触发change
事件 - 它不会自动触发 - 如下所示:
$("#PARENT-CHECKBOX1").prop("checked", true).trigger("change");