最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Layui数据表格如何实现某一列点击可直接修改数值
时间:2026-07-04 11:44:51 编辑:袖梨 来源:一聚教程网
必须配置 edit 字段才能启用单元格编辑,仅绑定 click 或 dblclick 无效;edit 值决定输入类型(如 'text'、'number'、'select'),且不可与 templet 共存;移动端建议设 event: 'click' 并确保 viewport 设置正确;编辑后数据存于 table.cache 中,需手动同步至服务端。
必须配 edit 才能点开输入框,光绑 click 没用
表格单元格默认是只读的,哪怕你给 td 绑了 click 或 dblclick,也改不了内容——因为 layui 底层根本没渲染输入控件。真正触发编辑行为的,是列配置里的 edit 字段。
-
edit: 'text':普通文本输入(最常用) -
edit: 'number':带数字校验和上下箭头,适合数值型字段 -
edit: 'select':只生成空<select>,选项得自己塞,且table.on('edit')对它不生效
别写 edit: 'textarea',Layui 不认这个值,会静默失败;要多行编辑,得用函数返回带 class="layui-textarea" 的 <textarea>。
edit 和 templet 不能共存
一旦某列用了 templet(比如加图标、按钮或格式化显示),edit 就会被忽略。Layui 把渲染权交给你了,就不会再接管编辑逻辑。
- 如果只是想让数值右对齐或加单位,别用
templet,直接在 CSS 里控制td[data-field="price"] { text-align: right; } - 真需要模板又想编辑,得在
templet里手动插入<input>或<select>,再调form.render(),并监听失焦/回车自己更新table.cache
移动端单击更稳,优先设 event: 'click'
默认双击才能进编辑态,但在 iOS Safari 和不少安卓 WebView 里,双击常被识别为缩放或文字选择,根本进不去输入框。
- 直接在列配置里加:
{ field: 'price', title: '价格', edit: 'number', event: 'click' } - 如果需区分 PC 和移动端行为,可用
layui.device()判断后动态设置列配置 - 确保页面有正确的
<meta name="viewport">,否则click可能延迟 300ms
编辑后数据不在原始 data 数组里,得查 table.cache
编辑只是更新 DOM 和临时缓存,原始传入的 data 数组完全不变。翻页、重载后,你改过的值就丢了。
- 最新值存在
table.cache['your-filter-id']里,key 是你在table.render()中设的id或元素的lay-id - 安全写法:
table.cache['priceTable'][rowIndex].price = newValue - 服务端分页场景下,必须在
table.on('edit(filter)', callback)里主动发请求保存,Layui 不自动同步
容易漏掉的是:编辑完没清空 input 的 focus 状态,或者没处理回车/失焦时的校验,导致用户以为改成功了,其实没发出去。
相关文章
- DNF18周年庆版本特工时装属性配置 07-04
- DNF18周年庆版本光枪时装属性选取 07-04
- DNF18周年庆版本征战者时装属性挑选 07-04
- 原神奥黛塔立绘总览 07-04
- 原神账号出售指南:稳妥可靠的交易平台推荐 07-04
- 《太空杀》携手《镇魂街》联动开启-新身份与丰富福利来袭 07-04