标题和行中带有复选框的Jquery数据表:选择所有复选框不起作用

Posted

技术标签:

【中文标题】标题和行中带有复选框的Jquery数据表:选择所有复选框不起作用【英文标题】:Jquery datatable with checkbox in header and in row:select all checkbox not working 【发布时间】:2013-07-26 14:00:52 【问题描述】:

我正在使用Jquery Datatable。我希望有一个带有标题的第一列和带有复选框的行,并且应该使用剩余行的复选框切换标题复选框的选择。我有以下实现。

数据表属性

  "aoColumns": [ "sTitle": "<input type='checkbox' id='selectall' onclick='toggleChecks(this);' ></input>", "mDataProp": null, "sWidth": "20px", "sDefaultContent": "<input type='checkbox' ></input>", "bSortable": false ,null,null,null,null,null,null]

数据表行

<td><input type="checkbox' class="case"></input></td>

javascript 函数

  function toggleChecks(obj)
    
        $('.case').prop('checked', obj.checked);
    

当我在单页上时,这很好用。但是当我进行分页时,其他页面的复选框仍然处于未选中状态。如何实现这一点以使所有复选框的行为一致。请帮忙。

【问题讨论】:

嗨,你有没有解决这个问题? 为什么不切换 $('#selectall').change(function()); 中的复选框。我在几张桌子上都这样做过。 【参考方案1】:

我做过类似的事情,

$('#selectall').change(function() 
                        var isSelected = $(this).is(':checked');
                        if(isSelected)
                            $('.case').prop('checked', true);   
                        else
                            $('.case').prop('checked', false);
                        
                    );

文件准备好了。

【讨论】:

函数可以简化为一行:$('.case').prop('checked', $(this).is(':checked'));【参考方案2】:

伙计们,

有类似的问题需要快速解决。

解决了这个问题,可能对某人有所帮助:

当我动态地为表格提供一些数据时:

oTable1.fnAddData
([
    "<span id='" + any_obj.id + "' style='display:block; width: 10px;'><input class='checkbox' type='checkbox' /></span>",
    title, 
    modified, 
    version
] );

注意复选框的范围。这显然是隐藏的,可以轻松访问。

【讨论】:

【参考方案3】:

您应该使用函数 fnDrawCallback 在页面更改时更新表格。

您可以在此函数中检查标题复选框的值并更新新行复选框。

您还可以为模型中的对象添加一个布尔值,并在您选中或取消选中时更改该值。如果您访问模型,您可以修改所有元素的值,而不仅仅是渲染的元素。然后,当您加载单元格时,您使用复选框表示该真/假。这是最一致的方法,但可能需要更多的工作才能在模型和视图之间获得良好的同步。

【讨论】:

以上是关于标题和行中带有复选框的Jquery数据表:选择所有复选框不起作用的主要内容,如果未能解决你的问题,请参考以下文章

具有复选框选择和行单击事件的 GWT CellTable

如何从 jQuery DataTable 中的所有页面中选择所有复选框

如何使用 jQuery 选择所有复选框?

名称属性中带有方括号的输入的 jQuery 选择器

使用 JQuery 在 GridView ASP.NET 中选择所有复选框

angular2中带有多个单选按钮的多复选框?