0

我有一个带有 jqGrid 的页面。必须是multiselect:false因为我必须只允许选择一行,但我还需要选择多行(即我希望标记多行但只有一个活动)。所以我创建了一个带有 multiselect:false 的网格和一个复选框行,formatter: 'checkbox' 我还在列标题中创建了一个主复选框(colNames 中列的“名称”是<input id="cbSelectAll" type="checkbox">

要在单击标题时一次更改所有行,我创建了该函数:

        $('#cbSelectAll').click(function (e) {
            var valor = $(this).is(':checked');
                $.each($('#grid input[type="checkbox"]'), function (idx, elm) {
                    var id = $(elm).closest('tr').attr('id');
                    var cb = $('#' + id + ' td').children().first();
                    $(cb).attr('checked', valor);
                    selectedRows[id] = valor;
                });
            /* other non relevant code */
        });

现在这是我的问题。当我尝试取消选择复选框时,此功能可以很好地工作,但是当我尝试选择时,它只在第一次工作。在随后的单击中,选中的属性会发生变化,但该框不会在视觉上发生变化。

4

1 回答 1

1

而不是 attr,请尝试使用prop

请看看这个类似的问题

于 2013-09-17T19:11:17.557 回答