【发布时间】:2013-09-18 03:11:17
【问题描述】:
我有一个包含 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 */
});
现在这是我的问题。 当我尝试取消选择复选框时,此功能可以很好地工作,但是当我尝试选择时,它只在第一次工作。在随后的单击中,已选中的属性已更改,但该框在视觉上没有更改。
【问题讨论】:
标签: javascript jquery checkbox jqgrid