javascript - 取消选中子项之一时取消选择所有复选框的问题

标签 javascript jquery checkbox

我正在尝试使用 jquery 使用下面的代码检查所有复选框,该代码在切换全选检查和取消选中 slectAll 时工作正常

现在,如果用户取消选中其中一个ieldset 复选框,我想取消选中slectAll。我尝试了这段代码

    $.each($("input[name='numbers']:not(:checked)"), function () {
        $('input:checkbox[name=slectAll]').prop("checked", false);
    });

但它没有完成任务!

<input id="boxid" type="checkbox" name="slectAll">
<label for="boxid">Select All</label>
<fieldset id="group_1">
    <input type="checkbox" name="numbers[]" value="0" />
    <input type="checkbox" name="numbers[]" value="1" />
    <input type="checkbox" name="numbers[]" value="2" />
    <input type="checkbox" name="numbers[]" value="3" />
    <input type="checkbox" name="numbers[]" value="4" />
</fieldset>

jquery 文件是

$(function () {
    $('input:checkbox[name=slectAll]').change(function () {
        if ($(this).is(':checked')) {
            $('#group_1').find(':checkbox').prop("checked", true);
        } else {
            $('#group_1').find(':checkbox').prop("checked", false);
        }
    });

    $.each($("input[name='numbers']:not(:checked)"), function () {
        $('input:checkbox[name=slectAll]').prop("checked", false);
    });

});

你能告诉我如何解决这个问题吗?谢谢

最佳答案

您还需要为这些复选框设置一个更改处理程序

$(function() {
  var $all = $('input:checkbox[name=slectAll]').change(function() {
    $checks.prop("checked", this.checked);
  });

  var $checks = $('#group_1 :checkbox').change(function() {
    $all.prop("checked", $checks.not(':checked').length == 0);
  });

  $('button').click(function() {
    var array = $checks.filter(':checked').map(function() {
      return this.value
    }).get();
    alert(array);


    return;
    //demo of ajax request
    $.ajax({
      url: '',
      data: {
        myvalues: array,
        usrename: somevalue
      }
    })
  })
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="boxid" type="checkbox" name="slectAll">
<label for="boxid">Select All</label>
<fieldset id="group_1">
  <input type="checkbox" name="numbers[]" value="0" />
  <input type="checkbox" name="numbers[]" value="1" />
  <input type="checkbox" name="numbers[]" value="2" />
  <input type="checkbox" name="numbers[]" value="3" />
  <input type="checkbox" name="numbers[]" value="4" />
</fieldset>

<button>Test</button>

关于javascript - 取消选中子项之一时取消选择所有复选框的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27631055/

相关文章:

javascript数组indexOf不工作

javascript - 影响事件类的延迟功能-一页滚动

html - 为什么输入类型复选框在选中时表现不同?

ruby-on-rails - Rails 4 字符串复选框从不返回空数组

Javascript - 以编程方式触发任何浏览器的复选框的 onChange 事件

Javascript keyup 函数抛出错误的警报消息

jquery - leanModal 在没有 .click() 的情况下启动

javascript - Jade with Express 中有 2 个带有隐藏方法的 Form

javascript - 使用 JSON 调用 API

javascript - JShint 警告 : jQuery plugin marked incorrectly 'defined but never used' in AMD