2016-12-30 146 views
1

我正在使用JQuery数据表。我想用复选框添加选择所有列,以便当我点击'全选'复选框时,该页面上的所有复选框应该被选中。选择所有复选框在JQuery数据表的下一页不起作用

我使用下面的代码:

<table id="myTable" cellspacing="0" width="100%"> 
    <thead> 
     <tr> 
      <th> Name</th> 
      <th> Type</th> 
      <th> Details</th> 
      <th>Select <input type="checkbox" name="select_all" value="1" id="select-all"></th> 
     </tr> 
    </thead> 
    <tbody> 
     <?php foreach ($test as $data) { ?> 
     <tr> 
      <td><?php echo $data->name; ?></td> 
      <td><?php echo $data->type; ?></td> 
      <td><a href="/details">view details</a></td> 
      <td><input type="checkbox" name="manuf[]" class="sub_chk" data-id="<?php echo $data->id; ?>"></td> 


     </tr> 
     <?php } ?> 
    </tbody> 
</table> 
<script> 
$(document).ready(function(){ 
$('#myTable').DataTable(); 
}); 

$('#select-all').on('click', function(e) { 
if($(this).is(':checked',true)) 
{ 
    $(".sub_chk").prop('checked', true); 
} 
else 
{ 
    $(".sub_chk").prop('checked',false); 
} 
}); 
</script> 

上面的代码适用于数据表的第一页,但如果我选择第二页,如果我选择“全选”复选框,它需要我第一页,而不是选择第二页中的复选框。

有没有解决方案?

回答

1

Working example

的问题来自于排序,你应该包含全部选择复选框th禁用排序。

希望这会有所帮助。

+1

是的,你说得对,我错了。我没有意识到内容被加载到页面上,我认为它来自AJAX,因为它在分页时确实应该是这样。 –

+0

@Zakaria Acharki它不工作..让我再次解释它有一个jQuery数据表与所有数据和一个复选框的列,其标题有另一个复选框(选择该页面上的所有复选框)。如果我在第一页上,我点击全部选中所有行。这是正确的,但是当我转到数据表的下一页时,标题选择所有复选框仍然处于选中状态。如果我取消选择它,它会将我带到数据表的第一页,而不是选择第二页的复选框。 – san

+0

我认为问题来自排序,尝试禁用具有'select -all'复选框,http://jsfiddle.net/UvjnT/1475/ –

0

我希望这个链接可以帮助你解决你的问题。 感谢

http://www.gyrocode.com/articles/jquery-datatables-how-to-add-a-checkbox-column/

+0

您有足够的声誉来暗示对网站及其网站的熟悉程度期望回答rs是独立的,不完全依赖于到外部站点的链接。请在您的答案中包含该网站的相关部分,并将其总结,并说明与您尝试回答的具体问题相关的原因以及原因。 –

相关问题