如何使用分页function取消选中tablesorter中的所有复选框
我被这个折磨了很长一段时间。
由于表格分类器分页将完全从表中删除不可见的行,以便更快地进行排序。 我无法让每一行中的复选框都能满足我的需求。
这是我的jsfiddle – > http://jsfiddle.net/NcqfY/3/
单击变量触发器以显示表
基本上我想要做的是获取所有选定行的id并将它们推入数组selectedID
。 创建报告时清空selectedID
数组(或单击“创建报告”按钮)。 所以在我点击按钮后,我希望表中的所有复选框都应该取消选中。 我使用以下代码:
$('table.tablesorter tbody tr').find('input[type=checkbox]').prop('checked', false); // I can only uncheck the boxes in current page
但是,我只能取消选中当前页面中的框,而不包括不可见的页面。 这真的让我很难获得所选行的正确ID。
任何人都可以帮助我将不胜感激!
你的部分javascript中有一些错误:
$('table.tablesorter tbody').on("click", "tr", function(event) { if (event.target.type != 'checkbox') { $(':checkbox', this).trigger('click'); var id = $(this).attr('id'); if (selectedID.indexOf(id) == -1) { selectedID.push(id); } else { var index = selectedID.indexOf(id); selectedID.splice(index, 1); } } });
我为你纠正了它们似乎工作正常:
!==
– > !=
===
– > ==
var id = $(this).attr('id')
– > var id = $(this).attr('id');
编辑:以上不适合我,所以我认为这是问题,但回答你的问题:
$($(".tablesorter")[0].config.rowsCopy).each(function() { $(this).find('input[type=checkbox]').prop('checked', false); });
这将取消检查表中的所有复选框,甚至是隐藏的复选框
根据tablesort的寻呼机文档 ,你可以这样做:
var t = $('table') // disabling the pager will restore all table rows t.trigger('disable.pager'); // ---do your thing--- // restore pager t.trigger('enable.pager');
这似乎有效,因为您没有省略寻呼机的大小选择器(如果这样做,它会抛出错误)。
我已经更新了你的JSFiddle: jsfiddle.net/NcqfY/6/