【问题标题】:Checking and uncheck check box's with class. Fails after first uncheck带类的选中和未选中复选框。第一次取消选中后失败
【发布时间】:2014-09-22 10:09:58
【问题描述】:

我有一组复选框,其中一个被标记为全部。如果单击它,我想检查该类中的所有其他复选框,如果再次单击它,我想删除该类中所有复选框的检查表单。

当我全部选中时,我的所有复选框都被选中,然后当我再次单击全部时,所有复选框都未选中。 如果我再次尝试单击全部,则只会单击全部复选框。

当所有复选框被选中时,我运行:

$('.chIndustry').attr('checked', 'checked');

当所有复选框变为未选中时:

$('.chIndustry').removeAttr('checked');

【问题讨论】:

  • 如何确定哪个是“全部”按钮?有代表性的 HTML 通常有助于解决 JavaScript 问题。
  • 显示一些对我们有用的html代码

标签: javascript jquery html checkbox


【解决方案1】:

$(document).ready(function() {
    $(".checkall").change(function() {
        console.log($(this).is(':checked'))
        if ($(this).is(':checked')) {
            $('input[name="test"]').prop('checked', true);
        } else {
            $('input[name="test"]').prop('checked',false );
        }
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

<input type="checkbox" name="test" class="test" />
<input type="checkbox" name="test" class="test" />
<input type="checkbox" name="test" class="test" />
<input type="checkbox" name="test" class="test" />
<input type="checkbox" name="test" class="test" /></br/>
Check all    <input type="checkbox"  class="checkall" />
以上工作根据您的要求..

【讨论】:

  • 我有 amy group 的复选框,所以不能使用 input[name=test] 除非名称是类?
  • 尽管这段代码有效,但值得一提的是checked 是布尔属性,如W3C forms specification 中所述。所以以正确的方式应该是prop('checked', true);prop('checked', false);
  • @Pomster 您可以将选择器从 $('input[name="test"]') 修改为 $('.chIndustry'),如 Sam1604 的回答中所述。
  • @Regent - 感谢您的提及。
【解决方案2】:

尝试.prop取消选中复选框

$('.chIndustry').prop('checked', false);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-10
    • 2020-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多