如何选中所有复选框?

时间:2013-04-09 00:42:09

标签: jquery

当我选中“selectall”复选框时,我试图检查所有复选框

我已经尝试了一些代码来让它工作但仍然无法为我工作。

当我点击主复选框时没有任何反应。

这是我到目前为止所做的事情

<script>

$(document).ready(function() {
    if(   $('#selectall').is(':checked')  ){

        $.each($('input[name=activitie]'){
            $('input[type=checkbox]').prop('checked', true)
        }

    }
});

</script>

3 个答案:

答案 0 :(得分:0)

无耻的自我推销:there's a jQuery plugin for that。在你的情况下,我认为这将解决问题:

$(function () {
    $('#selectall').checkAll('input[type="checkbox"]');
});

但是,如果没有看到一些标记,我无法肯定地说......

答案 1 :(得分:0)

当id为'selectall'的复选框的状态发生变化时,您需要检测某些内容,然后确定是否正在检查它。我已更新您的代码并修复了其他一些错误:

$(document).ready(function () {
    $("#selectall").click(function () {
        if ($("#selectall").is(":checked")) {
            $.each($('input[name=activitie]'), function () {
                $('input[type=checkbox]').prop('checked', true);
            });
        }
    });
});

此外,如果您希望在取消选中“selectall”时取消选中它们,则只需添加具有相同$.each的else子句,只需将.prop设置为取消选中的复选框,或者为false 。使用某种插件可能有一种更简单的方法,但我怀疑这应该有所帮助。

我已经整理了jsFiddle这应该有助于演示。

答案 2 :(得分:0)

$(document).ready(function() {
    $("#selectall").on("change", function(e) {
        e.preventDefault();
        $("input[type=checkbox][name=activitie]").prop("checked", $(this).prop("checked"));
    });
});