我一直在寻找试图找到答案的帖子,但是没有运气,所以希望有人可以指出我正确的方向。
当我使用以下代码时,它会检查所有输入框并取消选中它们。但是,如果我再次单击全部检查,则不会全部检查。那是为什么?
JQuery的
$('document').ready( function() {
$('.check_boxes').click( function() {
if ( $(':checkbox').attr('checked')) {
$(':checkbox').attr('checked', false);
} else {
$(':checkbox').attr('checked', true);
}
});
});
HTML
<input type="checkbox" class="check_boxes" id="check_all" />
答案 0 :(得分:1)
试试这个:
<强> JS 强>
$('document').ready( function() {
$('.check_boxes').click( function() {
if ( $('input:checkbox').prop('checked')) {
$('input:checkbox').prop('checked', true);
} else {
$('input:checkbox').prop('checked', false);
}
});
});
答案 1 :(得分:0)
我认为你需要这个简单的代码:
$('document').ready( function() {
$('.check_boxes').click( function() {
if ( $(':checkbox').prop('checked')) {
$(':checkbox').prop('checked', true);
} else {
$(':checkbox').prop('checked', false);
}
});
});
答案 2 :(得分:0)
实际上,一旦你点击复选框,第一个if总是为真。因此,所有checkebox都被取消选中(包括你点击的那个)。
我假设你想要这种行为: http://jsfiddle.net/vhLMN/18/
$('document').ready( function() {
$('.check_boxes').click( function() {
if ( !this.checked ) {
$('.flip_us :checkbox').attr('checked', false);
} else {
$('.flip_us :checkbox').attr('checked', true);
};
});
});
顺便说一句。输入中没有label
属性。除非您使用某个框架来创建实际的label
标记,否则您应该解决此问题。