复选框仅适用于 jQuery 数据表中的当前分页页面

Posted

技术标签:

【中文标题】复选框仅适用于 jQuery 数据表中的当前分页页面【英文标题】:Checkboxes will only work on current pagination page in jQuery datatables 【发布时间】:2015-08-23 18:59:14 【问题描述】:

我正在使用 jquery 数据表来列出我的内容,这些内容具有复选框选择和选定的内容发布数据,但以提交的形式仅发送当前页面数据。

我的数据表代码是:

$('#select').dataTable( 
        "order": [[ 2, "desc" ]],
        "lengthMenu": [[50, -1], [50, "All"]],
        "columnDefs": [
                 orderable: false, targets: [0, 1, 3, 5] ,
                 "width": "20px", "targets": [0, 1] ,
                 "width": "80px", "targets": [5] 
        ],

);

当我点击提交时,它只提交当前页面值的复选框数组。

我已经参考了这个链接Pagination with selected check boxes. Checkboxes will only work on current pagination page. jQuery datatables,但是那里提供的解决方案链接和链接不起作用。

【问题讨论】:

这是默认功能。如何提交未列出或不可见的数据?检查你的 gmail 收件箱,它的工作原理是一样的.. 【参考方案1】:

您可以使用以下代码获取所有选中的复选框值,这可能对您有所帮助

var myArray = [];
var id = "";
var oTable = $("#example").dataTable();
$(".class1:checked", oTable.fnGetNodes()).each(function() 
    if (id != "") 
        id = id + "," + $(this).val();
     else 
        id = $(this).val();
    
);

【讨论】:

不,我也想从上一页获取特定的选定数据。 在上面的代码中,你已经为 id 赋值了,但是我如何 appendTo(this) 才能获取我发布的所有数据?【参考方案2】:

你可以在最后检查它们。

var table = $("#yourtablename").DataTable(
    //your datatable options(optional)
);

现在 jQuery 可以通过以下代码访问所有行

  table.$('td > input:checkbox').each(function () 
            // If checkbox is checked
            if (this.checked) 
             //Your code for example
                alert($(this).attr('name'));
            
    ); 

【讨论】:

以上是关于复选框仅适用于 jQuery 数据表中的当前分页页面的主要内容,如果未能解决你的问题,请参考以下文章

复选框仅适用于第一页 - 数据表、导轨

复选框(Icheck)限制不适用于数据表中的其他页面,仅适用于第一页

角度表中的过滤仅适用于当前页面

如何将数据表分页中的记录发送到服务器类

可点击的行仅适用于数据表的第一页

Vuetify 数据表如何垂直适合表格以及分页页脚粘在底部