layui表格内使用edit属性修改行内容

在表格的姓名列中,当添加了edit参数时,单元格变为可编辑。编辑事件触发时,若字符长度超过5,会弹出提示并刷新页面恢复原数据;否则,更新的值将传给后台。

在cols里,在姓名这一列上添加了“edit”参数,则表示姓名这一列下的单元格是可编辑的:

cols: [[{field: 'uName',title: '姓名',minWidth: 130, edit: 'text'}]],

触发单元格编辑事件:单元格被编辑,且值发生改变时触发,回调函数返回一个object参数。

table.on('edit(test)', function (obj) {
   console.log(obj.value); // 得到编辑修改后的值
   console.log(obj.field); // 得到编辑的字段名
   console.log(obj.data); // 得到修改后该行的数据
 }

注意:edit是固定事件名;test是table原始容器的属性lay-filter="对应的值";obj.value得到修改后的值;obj.field得到编辑的字段名;obj.data得到所在行的所有相关数据。

那么如何控制编辑的字符的长度呢?

table.on('edit(test)', function (obj) {
        if (obj.value.trim().length > 5) { //判断字段长度,长度大于5时,弹出提示,
          																//并且页面刷新, 展示未修改之前的表格数据
            layer.msg("字符长度不能超过5!", { icon: 2,time:2000},function(){
                table.reload();
            });
        } else { // 如果符合,才会将值传给后台
            let param = {
                id: obj.data.id,
                uName: obj.value.trim()
            }
            equipmentSave(param)
        }
    })

### Layui 数据表格 `edit` 属性使用方法 在 Layui 框架中,数据表格组件支持单元格编辑功能,这一特性可以通过设置 `edit` 属性来实现。以下是关于 `edit` 属性的具体说明以及如何配置和使用的示例。 #### 1. `edit` 属性的作用 `edit` 属性用于定义某一列是否可编辑。当设置了此属性后,用户可以在前端直接修改表格中的数据,并触发相应的事件以便开发者捕获这些更改并处理逻辑[^3]。 #### 2. 配置方式 在初始化表格时,在对应字段的配置项中加入 `edit: true` 即可启用该列的编辑模式。例如: ```javascript table.render({ elem: '#LAY_table_user', url: 'UVServlet', // 数据接口地址 cols: [[ { checkbox: true, fixed: true }, // 复选框 { field: 'id', title: 'ID', width: 80, sort: true, fixed: true }, { field: 'aid', title: '商户', width: 80, sort: true }, { field: 'uv', title: '访问量', width: 80, sort: true, edit: true }, // 设置为可编辑 { field: 'date', title: '日期', width: 180 }, { field: 'datatype', title: '日期类型', width: 100 } ]], id: 'testReload', page: true, height: 600 }); ``` 在此例子中,`uv` 列被设为了可编辑状态 (`edit: true`)。 #### 3. 监听编辑事件 为了让程序能够响应用户的输入为,需监听 `edit` 事件。通过这个事件可以获得当前被编辑单元格的相关信息,如索引、字段名及新值等。 下面是一个完整的代码片段演示如何结合 `edit` 和其事件监听器一起工作: ```javascript layui.use(['table'], function() { var table = layui.table; // 渲染表格 table.render({ elem: '#LAY_table_user', url: '/mock/your-data-url.json', // 替换为实际的数据源路径 cols: [[ { checkbox: true, fixed: true }, { field: 'id', title: 'ID', width: 80, sort: true, fixed: true }, { field: 'name', title: '名称', width: 150 }, { field: 'age', title: '年龄', width: 100, edit: true } // 可编辑列 ]], page: true, limit: 10, limits: [10, 20, 30] }); // 绑定编辑事件 table.on('edit(test)', function(obj) { console.log("编辑完成"); console.log(obj.value); // 获取到的新值 console.log(obj.field); // 当前列字段名 console.log(obj.data); // 整数据对象 }); }); ``` 在这个脚本里,我们不仅创建了一个具有单个可编辑列 (即 “年龄”) 的表格,还注册了针对它的 `edit` 时间处理器函数。每当有某个单元格的内容发生变化时,都会调用这段回调代码并将更新后的数值打印出来供调试查看。 #### 注意事项 - 如果某列为数字型且允许编辑,请确保验证机制防止非法字符录入。 - 对于涉及敏感业务逻辑的操作建议同步至服务器端保存变更记录以防丢失重要资料[^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值