查看:
<?php
$attributes = array('class' => 'form-horizontal', 'id' => 'Form');
echo form_open($loginRedirect2,$attributes);
?>
<div class="stock_report" id="table_stock">
<div class="stock_report" id="table_stock_print">
<table id="order-listing" class="table">
<thead>
<tr class="bg-light">
<th><input type="checkbox" name="selectAll" id="selectAll" class="form-control" data-to-table="tasks" value=1></th>
<th>Code</th>
<
</tr>
</thead>
<tbody class="reportData">
<?php
if(is_array($employees)){
foreach($employees as $employee){
?>
<tr>
<td class="a-center "><input type="checkbox" name="selectall[]" class="form-control" value="<?php echo $employee['employeeId']; ?>"/></td>
<td><?php echo $employee['Code'];?></td>
</tr>
<?php
}
}else{
?>
<?php
}
?>
</tbody>
<tfoot>
<tr class="bg-light">
<th><input type="checkbox" name="selectAll" id="selectAll" class="form-control" data-to-table="tasks" value=1></th>
<th>Code</th>
</tr>
</tfoot>
</table>
</div>
</div>
<div class="shift_category form-group">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
<?php echo form_close();?>
脚本:
$(document).ready(function() {
var oTable = $('#order-listing').dataTable( {
initComplete: function () {
this.api().columns().every( function () {
var column = this;
var select = $('<select><option value=""></option></select>')
.appendTo( $(column.footer()).empty() )
.on( 'change', function () {
var val = $.fn.dataTable.util.escapeRegex(
$(this).val()
);
column
.search( val ? '^'+val+'$' : '', true, false )
.draw();
} );
column.data().unique().sort().each( function ( d, j ) {
select.append( '<option value="'+d+'">'+d+'</option>' )
} );
} );
},
columnDefs: [ {
orderable: false,
className: 'select-checkbox',
targets: 0
} ],
select: {
style: 'multi',
selector: 'td:first-child'
},
lengthMenu: [[20,50, 100, -1], [20, 50, 100, "All"]],
pageLength: 20
} );
var allPages = oTable.fnGetNodes();
$('body').on('click', '#selectAll', function () {
if ($(this).hasClass('allChecked')) {
$('input[type="checkbox"]', allPages).prop('checked', false);
} else {
$('input[type="checkbox"]', allPages).prop('checked', true);
}
$(this).toggleClass('allChecked');
});
} );
这是我的数据表视图和脚本。我在此数据表中添加了一个复选框。但是问题是复选框的selectall选项无法正常工作。这是模式视图。第一次单击selectall按钮时,它不是当我按下逃逸按钮,然后打开模态时,全选复选框的复选框正在起作用。如何解决此问题。
答案 0 :(得分:0)
您使用ID“ selectAll”两次。根据{{3}},“ id全局属性定义了一个唯一标识符(ID),该标识符在整个文档中必须是唯一的。”多次使用ID可能会导致不确定的行为。相反,可以考虑使用“ selectAll”类,该类可以应用于多个元素。
然后,代替这个:
$('body').on('click', '#selectAll', function () {
if ($(this).hasClass('allChecked')) {
$('input[type="checkbox"]', allPages).prop('checked', false);
} else {
$('input[type="checkbox"]', allPages).prop('checked', true);
}
$(this).toggleClass('allChecked');
});
使用它:
$('.selectAll').change(function() {
if ($(this).hasClass('allChecked')) {
$('input[type="checkbox"]').prop('checked', false);
} else {
$('input[type="checkbox"]').prop('checked', true);
}
$(this).toggleClass('allChecked');
});
首先确保您的$(document).ready(function()
在运行时没有例外-我无法确定,因为我确实尝试使用您的数据表库来运行它。使用Chrome,如果您按Ctrl + Shift + I并导航至控制台标签,则可以看到任何例外情况。