使用Jquery检查/取消检查输入框

Check / Uncheck Input Boxes with Jquery

本文关键字:检查 输入 取消 Jquery 使用      更新时间:2023-09-26

我一直在看帖子试图找到答案,但没有任何运气,所以希望有人能指出我在正确的方向。

当我使用以下代码时,它选中所有输入框并取消选中它们。但是,如果我再次单击全部检查,它不会全部检查。为什么呢?

JQuery

  $('document').ready( function() {
    $('.check_boxes').click( function() {
      if ( $(':checkbox').attr('checked')) {
        $(':checkbox').attr('checked', false);
      } else {
        $(':checkbox').attr('checked', true);
      }     
    });
});

<input type="checkbox" class="check_boxes" id="check_all" />

试试这个:

js

  $('document').ready( function() {
    $('.check_boxes').click( function() {
      if ( $('input:checkbox').prop('checked')) {
        $('input:checkbox').prop('checked', true);
      } else {
        $('input:checkbox').prop('checked', false);
      }     
    });
});

小提琴

实际上,一旦您单击复选框,第一个if总是为真。因此,所有的复选框都被选中(包括您单击的那个)。

我假设你想要这样的行为: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 标签

我认为你需要这个简单的代码:

$('document').ready( function() {
$('.check_boxes').click( function() {
  if ( $(':checkbox').prop('checked')) {
    $(':checkbox').prop('checked', true);
  } else {
    $(':checkbox').prop('checked', false);
  }     
 });
});