【发布时间】:2018-03-25 15:41:48
【问题描述】:
我使用 AJAX 将多行添加到包含复选框的数据表中 作为一个元素。我为之后的复选框编写了代码 选择/取消选择“全选”,tbody 中的所有子复选框都应该得到 相应地选中或取消选中。在手动选择/取消选择任何子复选框后,“全选”复选框应更改。但这部分不起作用。
HTML 代码:
<table id="user" class="w3-table-all w3-hoverable w3-card-4 display">
<thead>
<tr class="w3-light-grey">
<th><input type="checkbox" class="w3-check" id="select-all"></th>
<th>User Id</th>
<th>Username</th>
<th>Full Name</th>
<th>Activated Date</th>
<th>Last Login Date</th>
</tr>
</thead>
<tbody id="body">
</tbody>
</table>
用于复选框的 JQuery:
$("#select-all").change(function(){
$(".checkbox").prop('checked', $(this).prop("checked"));
});
$('.checkbox').change(function(){
if(false == $(this).prop("checked")){
$("#select-all").prop('checked', false);
}
if ($('.checkbox:checked').length == $('.checkbox').length ){
$("#select-all").prop('checked', true);
}
});
数据表和 AJAX 函数代码:
var table = $('#user').DataTable({
"columns": [
{ "orderable": false },
null,
null,
null,
null,
null,
],
"order": [[ 1, "asc" ]]
});
$.ajax({
url: 'data.json',
dataType: 'json',
success: function(data) {
for (var i=0; i<data.length; i++) {
if(data[i].enabled==1)
var row1 = $('<tr><td><input type="checkbox" class="w3-check checkbox" value=""></td><td>' + data[i].id+ '</td><td>' + data[i].username + '</td><td>' + data[i].first_name + ' ' + data[i].middle_name + ' ' + data[i].last_name + '</td><td>' + data[i].activated_date + '</td><td>' + data[i].last_login + '</td></tr>');
table.rows.add(row1);
table.draw();
$("#body").append(row1);
}
},
error: function(jqXHR, textStatus, errorThrown){
alert('Error: ' + textStatus + ' - ' + errorThrown);
}
});
【问题讨论】:
标签: jquery ajax datatables