2012-08-08 75 views
0

我已经受了很长一段时间的折磨。如何取消选中与分页功能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。

任何人都可以帮助我,将不胜感激!

回答

1

你在你的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); 
}); 

这将取消选中所有复选框中的表,甚至连隐藏的人

+0

作品太感谢你了!从来没有听说过'config.rowsCopy',有没有参考? – sozhen 2012-08-08 22:29:13

+0

http://stackoverflow.com/questions/5819415/accessing-the-whole-table-when-using-the-tablesorter-and-tablesorterpager-jquery,只是一个简单的谷歌搜索:) – orhanhenrik 2012-08-08 22:30:56

1

the documentation of tablesort's pager,你可以这样做:

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/

+0

好建议让我检查 – sozhen 2012-08-08 22:23:43

+0

谢谢为你的答案。我无法接受两个答案,所以我upvoted你:) – sozhen 2012-08-08 22:35:04

相关问题