检测表格单元格并设置复选框jquery

时间:2014-02-03 16:38:14

标签: jquery checkbox

这样可行,但前提是您选择了表格单元格,而不是复选框。想法?

    $(document).ready(function () {
        $('input:checkbox').removeAttr('checked');

        $('td.input-check-cell').click(function (e) {
            var chk = $(this).closest('tr').find('input:checkbox').get(0);
            if (e.target != chk) {
                chk.checked = !chk.checked;
                $(this).closest('tr').toggleClass('selected');
            } else {
                $(this).closest('tr').removeClass('selected');
            }
        });
    });

我创造了一个小提琴: http://jsfiddle.net/x4AxV/17/

4 个答案:

答案 0 :(得分:0)

您必须将所有代码移动到文档就绪事件处理程序中:

$(document).ready(function () {
    $('.messages-btn-o').hide();
    $('input:checkbox').removeAttr('checked');


    $('input:checkbox').change(function (e) {
        if ($('input[type=checkbox]:checked').length > 0) {
            $('.messages-btn-o').show();
        } else {
            $('.messages-btn-o').hide();
        }
    });

    $('td.checkbox').click(function (e) {
        var chk = $(this).closest('tr').find('input:checkbox').get(0);
        if (e.target != chk) {
            chk.checked = !chk.checked;
        }
    });

});

答案 1 :(得分:0)

有效。想法?

        $('td.checkbox').has('input:checkbox').click(function (event) {
            if (event.target === this) {
                var $checkbox = $(this).children('input:checkbox');
                $checkbox.attr('checked', !$checkbox.attr('checked'));
            }
            if ($('input[type=checkbox]:checked').length > 0) {
                $('.messages-btn-o').show();
                $(this).closest('tr').toggleClass('selected');
            } else {
                $('.messages-btn-o').hide();
                $(this).closest('tr').removeClass('selected');
            }
        });

答案 2 :(得分:0)

这有效......

 $(document).ready(function () {
        $('input:checkbox').removeAttr('checked');

        $('td.input-check-cell').click(function (e) {
            var checkbox = $(this).closest('tr').find('input:checkbox').get(0);
            if (e.target != checkbox) {
                checkbox.checked = !checkbox.checked;
            }
            if ($('input[type=checkbox]:checked').length > 0) {
                $(this).closest('tr').toggleClass('selected');
            } else {
                $(this).closest('tr').removeClass('selected');
            }
        });
    });

答案 3 :(得分:0)

这将检查单击的单元格中的复选框...

$('#table-id td.input-check-cell').click(function (e) {
    var checkbox = $($(this).find('input:checkbox').get(0));
    checkbox.prop("checked", !checkbox.prop("checked"));
});