当我单击数据表中的复选框时,会给我错误“行。select不是函数” ,因此我的所有复选框都没有选中,只是第一页上的复选框被选中了。所有数据都来自AJAX,我有10页。 如果要转到第4页,然后选择“全选”,则仅选中该页面的复选框
这是我的ejs代码:
<table id="participantstable" class="display">
<thead>
<tr>
<th style = "width:9px" class = "select-checkbox">
<label class="containerCheck">
<input class="select-checkbox" type="checkbox" id="chkAllParticipants"
name="selected_user" onclick="selectAll()" />
<span class="checkmark"></span>
</label>
</th>
</tr>
</thead>
<tbody>
<tr>
<td class = "select-checkbox">
<label class="containerCheck">
<input type="checkbox" class="chk-participants select-checkbox" id ="<%=ii%>"
name="selected_user" onclick="EnableDropdown()" />
<span class="checkmark select-checkbox"></span>
</label>
</td>
<td>
以下是用于表初始化的代码:
var participantstable = $("#participantstable").DataTable({
columnDefs: [{
orderable: false,
className: 'select-checkbox',
targets: 0
}],
select: {
style: 'os',
selector: 'td:first-child'
},
order: [
[1, 'asc']
],
columns: [
null,
null,
{ "visible": false },
null,
null,
null,
null,
//null,
],
stateSave: true,
select: true
});
这是js功能的代码:
participantstable.on("click", "th.select-checkbox", function () {
if ($("th.select-checkbox").hasClass("selected")) {
participantstable.rows(this).deselect();
$("th.select-checkbox").removeClass("selected");
} else {
// $('#participants-table').DataTable().row('.selected');
participantstable.rows(this).select();
$("th.select-checkbox").addClass("selected");
}
}).on("select deselect", function () {
("Some selection or deselection going on")
if (participantstable.rows({
selected: true
}).count() !== participantstable.rows().count()) {
$("th.select-checkbox").removeClass("selected");
} else {
$("th.select-checkbox").addClass("selected");
}
});
});