我制作了一个脚本来控制主从复选框(自动检查和取消选中)。
这是我的 JS:
$(document).ready(function() {
$('#myCheck').click(function() {
$('.myCheck').attr('checked', false);
});
$('.myCheck').click(function() {
if ($('.myCheck').is(':checked')) {
$('#myCheck').attr('checked', false);
} else {
$('#myCheck').attr('checked', true); // IT DOESN'T WORK, WHY ?
alert("Checkbox Master must be checked, but it's not!");
}
});
});
这是我的 HTML:
<input type="checkbox" id="myCheck" checked="checked" /> Checkbox Master<br />
<input type="checkbox" class="myCheck" value="1" /> Checkbox Slave 1<br />
<input type="checkbox" class="myCheck" value="1" /> Checkbox Slave 2
查看我的简单JsFiddle以了解问题所在。
编辑 1:就像 Inser 说的那样,问题发生在 jQuery 1.9.2 及更高版本上。jQuery 1.8.3 不再有问题。奇怪的...
编辑 2: Inser 找到了解决方案,使用.prop('checked', true)代替.attr('checked', true)。看看下面的评论...