我正在使用datatable创建一个可排序、可搜索、可分页的表,表中的行是load serverside,我在每一行中添加了一个复选框,在表头中添加了一个check all复选框,我编写了一个自定义jquery函数来检查复选框的所有行,下面是我的代码:
// checkbox check all
$(".checkboxParent").change(function () {
var chkGroup = $(this).data("chk-group");
if (chkGroup !== null) {
$(".checkboxItem[data-chk-group='"+chkGroup+"']").prop('checked', $(this).prop("checked"));
}
else {
$(".checkboxItem").prop('checked', $(this).prop("checked"));
}
});
问题是我的自定义检查全部功能无法检查数据表插件中的行的第2页,有没有什么方法可以克服这个问题??
下面是我的HTML代码:
<table class="paginateTable table table-hover display pb-30">
<thead>
<tr>
<th class="noSort fit">
<div class="checkbox checkbox-primary">
{!! Form::checkbox('userId', null, null, ['class' => 'checkboxParent', "data-chk-group" => ""]) !!}
<label></label>
</div>
</th>
<th>Level</th>
<th>Name</th>
<th>Members</th>
<th>Gift Point</th>
<th>Wallet</th>
<th>Withdrawal Wallet</th>
</tr>
</thead>
<tbody>
@for ($i=0; $i < 100; $i++)
<tr>
<td>
<div class="checkbox checkbox-primary">
{!! Form::checkbox('userId', null, null, ['class' => 'checkboxItem', "data-chk-group" => ""]) !!}
<label></label>
</div>
</td>
<td>
@php
$userLevel = $levels[rand(0, 3)];
@endphp
<div style="display:none;">
{{$userLevel}}
</div>
<div class="tableImage">
<img src="{{asset($userLevel)}}" alt="">
</div>
</td>
<td>
<span>
<span class="fontWeight800 colorBlack">Fullname {{$i}}</span>
<br>
<span>Username {{$i}}</span>
</span>
</td>
<td>{{$i}}</td>
<td>{{$i * 5}} aP</td>
<td>{{(($i+1) * 10) - rand(1, 5)}} aP</td>
<td>{{(($i+1) * 10) - rand(1, 5)}} aP</td>
</tr>
@endfor
</tbody>
</table>
这是我的代码片段,它已经选中了数据表中的所有复选框:
js prettyprint-override">var oTable = $('#yourTable').dataTable({
stateSave: true,
"bDestroy": true
});
$('#yourButton').click(function() {
// get all cells from your table
var allPages = oTable.api().cells().nodes();
//find your input checkbox in the cell, then make it checked
$(allPages).find('input[type="checkbox"]').prop('checked', true);
});
如果您想选中“仅过滤复选框”,可以向代码中添加一些香料,如下所示:
$('#selectAllBTN').click(function () {
var length = oTable.api().rows({filter : 'applied'}).nodes().length;
var allPages = oTable.api().rows( { filter : 'applied'} ).nodes();
for(var i=0;i<length;i++){
$(allPages[i]).find('input[type="checkbox"]').prop('checked',true);
}
})
我在index.php中有以下javascript代码: 我通过ajax检索信息,并使用jQuery数据表从该信息创建一个表,在数据表中,我有一个复选框。
问题内容: 我有一组具有相同名称的输入复选框,并且我想确定已使用JavaScript选中了哪些复选框,如何实现呢?我只知道如何获取所有复选框,如下所示: 问题答案: 一个简单的for循环,用于测试属性并将选中的属性附加到单独的数组中。从那里,如果需要,您可以进一步处理数组。
我希望在选中表中的所有复选框时选中标题复选框,如果没有选中单个复选框,则应取消选中标题复选框。
我使用jQuery Datatables插件来显示数据。它提供分页、搜索、排序等功能,所以每次我只在当前页面上显示10条记录。如果我点击next或page number(由Bootstrap Datatable提供),将显示另外10条记录。正如问题中提到的,我想从所有页面中选择所有复选框。
问题内容: 所以我有这些复选框: 等等。它们大约有6个,并且是手工编码的(即,不是从数据库中获取的),因此它们可能会保持一段时间不变。 我的问题是如何将它们全部放入一个数组中(使用javascript),以便在使用Jquery 进行AJAX 请求时可以使用它们。 有什么想法吗? 编辑:我只希望将所选的复选框添加到数组 问题答案: 格式化: 希望它将成功。
问题内容: 我不知道如何传递复选框的选定值。任何帮助或建议对我都会有很大帮助。 到目前为止,这是我的代码,我一直无法传递复选框的值 问题答案: 试试这个。 HTML代码 loadmore.php代码 在loadmore.php中输出 而已。 干杯。