如何在具有分页功能的表格排序器中取消选中所有复选框
How to uncheck all the checkbox in tablesorter with pagination functionality
我被这个折磨了好一阵子。
由于表排序器分页将从表中完全删除不可见的行,以便更快地排序。我无法让每行中的复选框按我的意愿工作。
这是我的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/
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 使用Jquery选择或取消选择ListView中的所有复选框
- 使用jquery选中/取消选中单个复选框
- 使用javascript在页面加载时取消选中所有复选框
- (取消)使用单独的复选框激活复选框列表
- jQuery-取消选中复选框
- 单击或取消选中复选框时,如何创建弹出的自定义窗口
- Javascript选中/取消选中所有复选框并将值写入文本区域
- dojo/cbtree取消选中所有复选框并选中选中复选框
- 通过选中和取消选中复选框来添加和删除数组中的值
- 当与之关联的 ng-model 为 false 时,Angularjs 复选框值不会取消选中
- 取消复选框未进行可视化更新
- 复选/取消复选框不能与prop功能一起工作
- 在剑道ui网格中上下滚动时取消复选框
- 检查条件后使用jQuery取消复选框
- 当另一个复选框被选中时,取消复选框,但如果被选中,也取消复选框
- JQuery .prop函数不工作,取消复选框
- 取消复选框绑定
- 如何在不取消复选框的情况下通过Ajax更新复选框列表
- 绑定点击事件后无法取消复选框