Layui表格行添加编辑删除操作和保存数据代码
时间: 2024-01-08 07:04:53 浏览: 371
Layui表格添加行删除保存代码.zip
以下是使用Layui表格进行行添加、编辑、删除和保存数据的代码示例:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Layui表格行添加编辑删除操作和保存数据</title>
<link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.6/css/layui.min.css">
</head>
<body>
<div class="layui-container">
<div class="layui-row">
<div class="layui-col-md12">
<table class="layui-table" lay-filter="test">
<thead>
<tr>
<th>ID</th>
<th>名称</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>HTML</td>
<td>
<a href="javascript:void(0);" class="layui-btn layui-btn-xs" onclick="editRow(this)">编辑</a>
<a href="javascript:void(0);" class="layui-btn layui-btn-danger layui-btn-xs" onclick="delRow(this)">删除</a>
</td>
</tr>
<tr>
<td>2</td>
<td>CSS</td>
<td>
<a href="javascript:void(0);" class="layui-btn layui-btn-xs" onclick="editRow(this)">编辑</a>
<a href="javascript:void(0);" class="layui-btn layui-btn-danger layui-btn-xs" onclick="delRow(this)">删除</a>
</td>
</tr>
</tbody>
</table>
<div class="layui-btn-group">
<button class="layui-btn layui-btn-sm" onclick="addRow()">添加行</button>
<button class="layui-btn layui-btn-sm" onclick="saveData()">保存数据</button>
</div>
</div>
</div>
</div>
<script src="https://cdn.staticfile.org/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/layui/2.5.6/layui.min.js"></script>
<script>
layui.use(['table', 'layer'], function() {
var table = layui.table;
var layer = layui.layer;
//监听单元格编辑
table.on('edit(test)', function(obj) {
console.log(obj.value); //得到修改后的值
console.log(obj.field); //当前编辑的字段名
console.log(obj.data); //所在行的所有相关数据
});
});
//添加行
function addRow() {
var table = layui.table;
table.render({
elem: '#test',
data: [{
id: '',
name: ''
}],
cols: [
[{
field: 'id',
title: 'ID',
edit: 'text'
}, {
field: 'name',
title: '名称',
edit: 'text'
}, {
fixed: 'right',
title: '操作',
toolbar: '#barDemo'
}]
]
});
}
//编辑行
function editRow(obj) {
var table = layui.table;
var tr = $(obj).parents('tr');
//将单元格设为可编辑状态
tr.find('td').each(function() {
var td = $(this);
if (td.attr('data-editable')) {
td.attr('contenteditable', true);
}
});
}
//删除行
function delRow(obj) {
var tr = $(obj).parents('tr');
tr.remove();
}
//保存数据
function saveData() {
var table = layui.table;
var data = table.cache.test;
console.log(JSON.stringify(data));
layer.msg('数据已保存');
}
</script>
<script type="text/html" id="barDemo">
<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>
</body>
</html>
```
注意事项:
- 使用`layui.use()`方法加载`table`和`layer`模块。
- `table.render()`方法用于初始化表格,`elem`参数指定表格容器的选择器,`data`参数指定表格数据,`cols`参数指定表格列定义。
- 在表格列定义中,使用`edit`属性将单元格设为可编辑状态,使用`toolbar`属性指定操作列的工具栏模板。
- 在操作列的工具栏模板中,使用`lay-event`属性指定操作类型。
- 在JavaScript代码中,使用`table.on()`方法监听单元格编辑事件,使用`table.cache()`方法获取表格缓存数据。
阅读全文