Javascript 数据表在所有页面上更改复选框
我使用DataTables列出在web应用程序的每个页面上显示的“事件” 对于每个页面,我都有一列,每个事件都是一行,每页都有复选框。(让您了解它的外观:) 当我单击一个页面时,它应该选中所有复选框,但是这些复选框只在DataTable的当前页面上被选中 感谢您的帮助 编辑:这是我的问题()的JSFIDLE HTMLJavascript 数据表在所有页面上更改复选框,javascript,html,datatables,jquery-datatables,Javascript,Html,Datatables,Jquery Datatables,我使用DataTables列出在web应用程序的每个页面上显示的“事件” 对于每个页面,我都有一列,每个事件都是一行,每页都有复选框。(让您了解它的外观:) 当我单击一个页面时,它应该选中所有复选框,但是这些复选框只在DataTable的当前页面上被选中 感谢您的帮助 编辑:这是我的问题()的JSFIDLE HTML 名称 复选框 老虎尼克松 加勒特温特斯 阿什顿考克斯 塞德里克·凯利 佐藤航空 布里尔·威廉姆森 赫罗德·钱德勒 罗娜·戴维森 科琳赫斯特 索尼娅·弗罗斯特 杰娜·盖恩斯 奎因·
名称
复选框
老虎尼克松
加勒特温特斯
阿什顿考克斯
塞德里克·凯利
佐藤航空
布里尔·威廉姆森
赫罗德·钱德勒
罗娜·戴维森
科琳赫斯特
索尼娅·弗罗斯特
杰娜·盖恩斯
奎因·弗林
JavaScript
$(document).ready(function() {
$.extend($.fn.dataTable.defaults, {
"columns": [null, { "orderable": false }]
});
$('#eventsTable').DataTable();
});
$("#checkall").on('click', function() {
if (this.checked) {
for(var i = 1; i <= 12; i++) {
var id = "#checkbox" + i;
$(id).prop('checked', true);
}
} else {
for(var i = 1; i <= 12; i++) {
var id = "#checkbox" + i;
$(id).prop('checked', false);
}
}
});
$(文档).ready(函数(){
$.extend($.fn.dataTable.defaults{
“列”:[null,{“orderable”:false}]
});
$('#eventsTable').DataTable();
});
$(“#checkall”)。在('click',function()上{
如果(选中此项){
对于(var i=1;i您的单击处理程序应更改为:
$("#checkall").on('click', function () {
$('#eventsTable').DataTable()
.column(1)
.nodes()
.to$()
.find('input[type=checkbox]')
.prop('checked', this.checked);
});
有关代码和演示,请参阅
考虑使用jQuery DataTables更容易地处理表中的复选框。@ozil我用JSFIDLE编辑了这篇文章,只要请求它就可以了……这是一个更好的解决方案,因为它也可以处理过滤列表。非常感谢。很高兴听到我的代码帮助了你。是否可以使用JSFIDLE保留当前的分页是否转到第1页?
$("#chbox").click(function () {
//chbox is main checkbox
var rows,checked;
var rows = $("#viewlist").dataTable().$('tr', {"filter": "applied"});// viewlist is
checked = $(this).prop('checked');
$.each(rows, function () {
var checkbox = $($(this).find('td').eq(0)).find('input').prop('checked', checked);
});
});
$("#chbox").click(function () {
//chbox is main checkbox
var rows,checked;
var rows = $("#viewlist").dataTable().$('tr', {"filter": "applied"});// viewlist is
checked = $(this).prop('checked');
$.each(rows, function () {
var checkbox = $($(this).find('td').eq(0)).find('input').prop('checked', checked);
});
});