我有6个复选框,每个对应一周中的一个工作日,并且还有一个名为“全部”的复选框。
我的需求是,如果有人点击了“全部”复选框,我希望能够取消所有其他复选框的选择状态。
例如,如果有人已经勾选了星期一和星期三的复选框,然后再点击“全部”复选框,那么星期一和星期三的复选框应该被取消勾选状态。
谢谢!
我有6个复选框,每个对应一周中的一个工作日,并且还有一个名为“全部”的复选框。
我的需求是,如果有人点击了“全部”复选框,我希望能够取消所有其他复选框的选择状态。
例如,如果有人已经勾选了星期一和星期三的复选框,然后再点击“全部”复选框,那么星期一和星期三的复选框应该被取消勾选状态。
谢谢!
<input type="checkbox" id="chkAll" />
<br />
<input type="checkbox" id="chkMonday" class="child" />
<input type="checkbox" id="chkTuesday" class="child" />
<input type="checkbox" id="chkWednesday" class="child" />
<input type="checkbox" id="chkThursday" class="child" />
<input type="checkbox" id="chkFriday" class="child" />
<input type="checkbox" id="chkSaturday" class="child" />
<input type="checkbox" id="chkSunday" class="child" />
jQUery
$(function(){
$("#chkAll").change(function(){
if (this.checked) {
$("input:checkbox.child").attr("checked", "checked");
}
else {
$("input:checkbox.child").removeAttr("checked");
}
});
});
查看实际演示
查看更新版本,该版本还处理了子复选框的更改。
使用jQuery和类似以下的代码应该可以解决问题。
$('#all-id').change(function(){
if($('#all-id').is(':checked')){
if($('#monday-id').is(':checked')){
$('#monday-id').attr('checked', false);
} else {
$('#monday-id').attr('checked', true);
}
// etc
}
});
接下来,您可能希望将所有 ID 存储在一个数组中,并设置循环,或者调整文档结构以便能够轻松地循环处理所有这些复选框