取消选中fnDrawCallback for DataTables的复选框

时间:2013-11-23 22:42:23

标签: datatables jquery-datatables

我的桌子上有一个复选框。如果重绘数据表(通过过滤,搜索,分页等),我想确保未选中。

"fnDrawCallback": function() {
  $(".checkboxes").uniform();
  $(".table-checkbox input[type=checkbox]").attr('checked', false);
  alert( 'DataTables has redrawn the table' );
}

统一调用修复了数据表中的样式化问题...警报只是在每次重绘后显示。

.table-checkbox是否在数据表之外并且不是动态的(它明确地在thead的html中)是否重要?我只是想确保在表重绘时总是取消选中。

编辑:

以下作品......有更好的方法吗?显然我还需要在thead上打制服来做这件事。

"fnDrawCallback": function() {
  $(".table-checkbox input[type=checkbox]").attr('checked', false);
  $(".checkboxes").uniform();
  $(".group-checkable").uniform();
  alert( 'DataTables has redrawn the table' );
}

1 个答案:

答案 0 :(得分:0)

在我看来,这是一个普遍的统一问题。在上面你首先取消选中代码复选框,然后重新启动所有复选框,这样它们似乎不会被代码取消选中,但事实上它们只是重新初始化/重新定制'!

查看此问题(和答案) - > jQuery Uniform Checkbox does not (un)check

您需要的唯一代码是

fnDrawCallback: function() {
   $(this).find('thead input[type=checkbox]').removeAttr('checked');
   $.uniform.update();
}

如果您使用排序,则应将fnDrawCallback替换为fnInfoCallback,因为fnDrawCallback即使您仅点击复选框,{{1}}也会被触发!