Gid*_*eon 9 javascript checkbox jquery
我对jQuery有一个非常简单的要求:如果选中了单选按钮,则检查一组框,如果检查了另一个单元,则清除所有框.
jquery工作,但它只工作一次 - 如果我点击检查所有(所有框检查),然后单击以清除它们(所有框清除),然后再次单击以全部检查 - 没有效果.同样,如果我手动取消选中某些框,然后单击再次全选,则无效.
jQuery的
$('#all').on('change', function() {
if (!$(this).is(':checked')) {
$('.country').attr('checked', false);
} else {
$('.country').attr('checked', true);
}
});
$('#none').on('change', function() {
if (!$(this).is(':checked')) {
$('.country').attr('checked', true);
} else {
$('.country').attr('checked', false);
}
});
Run Code Online (Sandbox Code Playgroud)
HTML
<div class="subselect">
<input type="radio" class="TLO" name="radio1" id="all" />Check All
<br />
<input type="radio" class="TLO" name="radio1" id="none" />Clear All
<br />
</div>
<br />
<br />
<div class="cselect" id="countries">
<input type="checkbox" class="country" />1
<br />
<input type="checkbox" class="country" />2
<br />
<input type="checkbox" class="country" />3
</div>
Run Code Online (Sandbox Code Playgroud)
jsFiddle http://jsfiddle.net/vsGtF/1/
j08*_*691 33
改变你.attr()的.prop().
$('#all').on('change', function() {
if (!$(this).is(':checked')) {
$('.country').prop('checked', false);
} else {
$('.country').prop('checked', true);
}
});
$('#none').on('change', function() {
if (!$(this).is(':checked')) {
$('.country').prop('checked', true);
} else {
$('.country').prop('checked', false);
}
});
Run Code Online (Sandbox Code Playgroud)
你也可以将它减少到:
$('#all').on('change', function () {
$('.country').prop('checked', $(this).is(':checked'));
});
$('#none').on('change', function () {
$('.country').prop('checked', !$(this).is(':checked'));
});
Run Code Online (Sandbox Code Playgroud)
作为.attr()状态的文档:
从jQuery 1.6开始,.attr()方法为尚未设置的属性返回undefined.要检索和更改DOM属性(如表单元素的已检查,已选择或已禁用状态),请使用.prop()方法.