在本文中,我们将深入探讨如何在layui框架中实现默认选中table的CheckBox复选框。layui是一款流行的前端组件库,提供了丰富的UI组件,包括表格(table)和复选框(CheckBox)。在数据展示或者数据操作的场景中,我们有时需要在表格加载时让某些行的复选框默认处于选中状态。这里,我们将介绍两种方法来实现这一功能。 ### 方法一:通过`done`回调函数设置 在layui的table渲染配置中,我们可以利用`done`回调函数,在数据加载完成后进行自定义操作。以下是一个例子: ```javascript table.render({ elem: '#userTable', url: '../sysRole/getUserList', title: '用户列表', page: true, // 开启分页 cols: [ [{ type: 'checkbox' }, { field: 'userName', sort: true, title: '用户名称' }, { field: 'account', sort: true, title: '登录账户' }, { field: 'deleteFlg', sort: true, title: '是否启用' }] ], done: function(res, page, count) { // 添加判断条件,例如默认选中第一行 res.data[0]["LAY_CHECKED"] = 'true'; var index = res.data[0]['LAY_TABLE_INDEX']; $('tr[data-index=' + index + '] input[type="checkbox"]').prop('checked', true); $('tr[data-index=' + index + '] input[type="checkbox"]').next().addClass('layui-form-checked'); } }); ``` 在这个示例中,`done`回调接收三个参数:`res`(服务器返回的数据),`page`(当前页码),`count`(数据总数)。我们通过`res.data[0]["LAY_CHECKED"] = 'true';`设置第一行的`LAY_CHECKED`属性为`true`,然后通过jQuery选择器修改DOM元素,使第一行的复选框显示为选中状态。 ### 方法二:使用自定义模板和JavaScript函数 在某些情况下,我们需要根据特定条件动态决定哪些复选框应该被选中。我们可以创建一个自定义的模板,并在其中定义一个JavaScript函数来判断复选框的状态。以下是一个例子: ```html <table class="layui-hide" id="deviceList" lay-filter="deviceFilter"></table> <script type="text/html" id="checkboxTpl"> {{# function checkFuntion(arry){ ... }} {{# if(d.deviceAreaId!=null){ }} <input type="checkbox" lay-skin="primary" value="{{d.id}}" lay-filter="deviceIdFilter" disabled> {{# } else { if(checkFuntion(checkId)){ }} <input type="checkbox" lay-skin="primary" id="{{d.id}}" isCheck="true" value="{{d.id}}" lay-filter="deviceIdFilter" checked> {{# } else { }} <input type="checkbox" lay-skin="primary" id="{{d.id}}" isCheck="false" value="{{d.id}}" lay-filter="deviceIdFilter"> {{# } }} </script> ``` 在这个方法中,我们定义了一个名为`checkFuntion`的函数,它接受一个数组`arry`作为参数,用于检查当前项的ID是否存在于数组中。如果存在,那么复选框会被选中。在模板中,我们根据`deviceAreaId`字段的值和`checkFuntion`的返回结果来决定复选框是否被选中。 总结来说,layui提供了一种灵活的方式来处理table中的复选框选中状态。你可以根据实际需求选择合适的方法,或者结合两者,实现更复杂的逻辑。在使用过程中,需要注意的是,确保在设置选中状态时,复选框的DOM元素已经渲染完成,否则可能无法正确地选中目标复选框。同时,对于大量数据的处理,应考虑性能优化,避免不必要的遍历和DOM操作。
- 粉丝: 9
- 资源: 919
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助