jQuery代码获取复选框长度,而使用jQuery数据表
jQuery code to get checkbox length while using jQuery DataTables
我得到错误的值,而获取的复选框长度使用jQuery和jQuery数据表
HTML:<table class="table table-bordered" id="dataTables-show-productList">
<thead>
<tr>
<th width="5px"><input type="checkbox" name="Select All" class="chkSelectAll" /></th>
<th>Product Information</th>
</tr>
</thead>
<tbody>
<c:forEach var="masterListVar" items="${masterList}">
<tr>
<td width="1%" align="center">
<c:if test="${masterListVar.saveFlag}">
<input type="checkbox" path="selectChecked" checked class="Projection_test" value="${masterListVar.productId}"/>
</c:if>
<c:if test="${!masterListVar.saveFlag}">
<input type="checkbox" path="selectChecked" class="Projection_test" value="${masterListVar.productId}"/>
</c:if>
</td>
<td>${masterListVar.productInfo}</td>
</tr>
</c:forEach>
</tbody>
</table>
JavaScript: $('#dataTables-show-productList').DataTable({
width:'100%'
, responsive : true
, "bSort" : false
});
$('.chkSelectAll').click(function () {
$('.Projection_test').prop('checked', $(this).is(':checked'));
});
$('.Projection_test').click(function () {
if ($('.Projection_test:checked').length == $('.Projection_test').length) {
$('.chkSelectAll').prop('checked', true);
}
else {
$('.chkSelectAll').prop('checked', false);
}
});
$('#FavouriteList').click(function (e) {
var selectedRow = $('.Projection_test');
alert($('.Projection_test:checked').length);
e.preventDefault();
});
分页时,只选择12个值。在警报中,它只显示2当我保持在2页和测试。
原因
jQuery数据表只存在于DOM中可见的行。这就是为什么使用jQuery $()
方法访问复选框会给你2个节点。
要选择复选框,包括DOM中不存在的复选框,并考虑到当前的搜索查询,使用下面的代码:
// Select all available rows with search applied
var rows = $('#dataTables-show-productList').DataTable()
.rows({ 'search': 'applied' })
.nodes();
// Checked checkboxes
console.log($('.Projection_test:checked', rows).length);
// All checkboxes
console.log($('.Projection_test', rows).length);
您需要在所有单击事件处理程序中使用此逻辑:$('.chkSelectAll').click
, $('.Projection_test').click
和$('#FavouriteList').click
。
jQuery DataTables也有$()
方法,允许在完整的表上执行jQuery选择操作。但是,它不允许过滤掉应用了搜索的行。
请参阅我们的文章jQuery数据表-如何添加复选框列,了解更多使用jQuery数据表时如何使用复选框的信息。
相关文章:
- 用程序搜索JQuery数据表中的文本
- jquery数据表的自定义ko绑定
- jquery数据表在初始化时设置宽度
- 如何通过下拉值更改来更改jquery数据表的值
- 来自应用程序状态的Jquery数据表源
- 如何根据某些条件向可编辑的jquery数据表添加或删除按钮
- 如何在不使用TableTool的情况下从jquery数据表中获取选定的行索引
- Jquery 数据表选择位于第 1 页以外的其他页上的行
- jQuery 数据表 在页面上导航时,在分页表上重置行的数据
- 如果我在页面之间移动,Jquery 数据表行事件会卡住
- 引导程序 3 折叠面板中的 Jquery 数据表响应插件
- 为什么不允许在jquery数据表服务器端处理ajax中使用成功
- 对 jQuery 数据表中的所有选定行求和
- 使用jquery数据表,我可以't在不破坏FixedHead的情况下生成单元格colspan=3
- 扩展详细信息Jquery数据表的持久性
- jquery数据表显示/隐藏列添加了错误的选择
- 如何暂停和重新启动jquery数据表插件
- jquery数据表滚动条定位
- Jquery 数据表 序列化程序之后 ASP.NET 日期格式
- 具有三色行的Jquery数据表