首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择所有复选框

问选择所有复选框
EN

Stack Overflow用户
提问于 2017-02-26 08:19:19
回答 1查看 107关注 0票数 0

我使用以下代码选择页面中的所有复选框:

代码语言:javascript
复制
$(function(){

    // add multiple select / deselect functionality
    $("#selectall").click(function () {
          $('.case').attr('checked', this.checked);
    });

    // if all checkbox are selected, check the selectall checkbox
    // and viceversa
    $(".case").click(function(){

        if($(".case").length == $(".case:checked").length) {
            $("#selectall").attr("checked", "checked");
        } else {
            $("#selectall").removeAttr("checked");
        }

    });
});

在此代码中,选择“所有复选框”。但是,如果我们选择了一些复选框,并给出选择所有它,选择所有。在我们再次取消选中后,选中除上一个复选框之外的所有复选框。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-26 08:25:07

attr部分的$('.case').attr('checked', this.checked);不正确:复选框的当前选中状态由checked属性表示。checked属性只是input的 checked state,而不是其当前的选中状态。(就像value属性和value属性之间的区别一样)。

若要设置复选框的当前状态,请使用prop

​

代码语言:javascript
复制
$(function() {

    // add multiple select / deselect functionality
    $("#selectall").click(function() {
        $('.case').prop('checked', this.checked);
    });

    // if all checkbox are selected, check the selectall checkbox
    // and viceversa
    $(".case").click(function() {
        $("#selectall").prop("checked", $(".case").length == $(".case:checked").length);
    });
});
代码语言:javascript
复制
<div><label><input type="checkbox" class="case"> One</label></div>
<div><label><input type="checkbox" class="case"> Two</label></div>
<div><label><input type="checkbox" class="case"> Three</label></div>
<div><label><input type="checkbox" class="case"> Four</label></div>
<div><label><input id="selectall" type="checkbox"> ALL</label></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42466270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档