本文介绍如何在 Layui 框架中实现表格的全选与反选功能。通过引入 layui.css 和 layui.js,结合 HTML 结构定义表头与表体复选框,并利用 form.on 监听事件,实现总选开关与单项选择的自动联动逻辑。当所有子项被选中时,总选框自动勾选,反之则取消,确保数据交互状态同步。
环境依赖与前置准备
首先,确保项目中已正确引入 layui.css 和 layui.js 文件,这是实现后续功能的基础依赖。
HTML 表格结构搭建
接下来,构建 HTML 页面结构,定义包含复选框的表格布局。
<div class="layui-form">
<table class="layui-table">
<thead>
<tr>
<td>
<input type="checkbox" name="" lay-skin="primary" lay-filter="allChoose">
</td>
<td>ID</td>
<td>角色名</td>
<td>唯一标识</td>
<td>状态</td>
<td>操作</td>
</tr>
</thead>
<tbody class="role_list">
<tr>
<td>
<input type="checkbox" name="" lay-skin="primary" lay-filter="itemChoose">
</td>
<td>1</td>
<td>xxx</td>
<td>xxx</td>
<td>xxx</td>
<td>xxx</td>
</tr>
</tbody>
</table>
</div>
JavaScript 交互逻辑实现
随后,编写 JavaScript 代码以处理复选框的交互逻辑。
form.on('checkbox(allChoose)', function(data){
var child = $(data.elem).parents('table').find('tbody input[type="checkbox"]');
child.each(function(index, item){
item.checked = data.elem.checked;
});
form.render('checkbox');
});
form.on('checkbox(itemChoose)',function(data){
var sib = $(data.elem).parents('table').find('tbody input[type="checkbox"]:checked').length;
var total = $(data.elem).parents('table').find('tbody input[type="checkbox"]').length;
if(sib == total){
$(data.elem).parents('table').find('thead input[type="checkbox"]').prop("checked",true);
form.render();
}else{
$(data.elem).parents('table').find('thead input[type="checkbox"]').prop("checked",false);
form.render();
}
});
全选与单选联动机制解析
代码逻辑主要包含两部分:一是实现全选与反选功能,二是处理单个复选框的选择效果。当用户单独勾选或取消勾选某一行时,系统会检测所有子项的选中状态。如果所有子项均被选中,表头的总选开关会自动变为勾选状态;反之,只要有任何一项未被选中,总选开关将自动取消勾选,从而保持数据状态的一致性。
以上这篇layui结合form,table的全选、反选v1.0示例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持本站。