3分钟搞定Layui表格数字框编辑,告别繁琐输入!

3分钟搞定Layui表格数字框编辑,告别繁琐输入!

【免费下载链接】layui 【免费下载链接】layui 项目地址: https://gitcode.com/gh_mirrors/lay/layui

你是否还在为表格中数字输入效率低、易出错而烦恼?本文将通过3种实现方案,教你快速在Layui表格编辑模式中集成数字框,提升数据录入效率。读完你将掌握基础配置、自定义验证和动态数据绑定的全流程实现,附赠完整代码示例。

方案一:基础数字框配置

Layui表格提供了基础的单元格编辑功能,通过设置edit: 'text'可快速启用文本编辑,但直接使用文本框输入数字缺乏约束。我们可以通过自定义模板实现数字框效果。

首先在表格列配置中指定templet,使用Layui的输入框组件并添加type="number"属性:

<script type="text/html" id="TPL-number-input">
  <input type="number" class="layui-input" value="{{= d.experience || 0 }}" min="0" step="1">
</script>

在表格渲染时引用该模板:

table.render({
  elem: '#ID-table-demo-editmodes',
  cols: [[
    {field: 'experience', title: '积分', templet: '#TPL-number-input'}
  ]],
  // 其他配置...
});

完整示例可参考docs/table/examples/editModes.md中的数字框实现。

方案二:带验证的数字输入

为确保输入的数字符合业务规则(如范围限制、步长控制),需要添加验证逻辑。通过监听单元格编辑事件,在数据提交前进行校验。

table.on('edit(ID-table-demo-editable)', function(obj){
  var field = obj.field;
  var value = obj.value;
  
  // 验证数字范围
  if(field === 'experience' && (value < 0 || value > 10000)){
    layer.tips('积分必须在0-10000之间', this, {tips: 1});
    return obj.reedit(); // 重新编辑
  }
  
  // 提交到服务器
  // ...
});

上述代码来自docs/table/examples/editable.md,展示了如何使用reedit()方法在验证失败时重新启用编辑。

方案三:动态数据绑定与更新

实际应用中,数字框的值通常需要与表格数据实时同步。Layui表格提供了update()方法更新行数据,结合数字框的change事件可实现双向绑定。

// 在done回调中初始化数字框事件
done: function(){
  $('.layui-table-body input[type="number"]').on('change', function(){
    var value = $(this).val();
    var tr = $(this).closest('tr');
    var data = table.cache[tableId][tr.data('index')];
    
    // 更新数据
    data.experience = value;
    table.reloadData(); // 刷新表格
  });
}

表格数据缓存逻辑可参考src/modules/table.js中的cache对象实现。

三种方案对比与选择

方案适用场景优点缺点
基础配置简单数字输入实现简单,代码量少缺乏验证和交互反馈
带验证的输入有规则约束的数字数据合法性有保障需要额外编写验证逻辑
动态数据绑定实时数据展示数据同步及时需手动维护缓存状态

根据项目需求选择合适方案,复杂场景可组合使用。例如,在电商订单管理系统中,可对"数量"字段采用方案三,对"单价"字段采用方案二。

实现流程图

mermaid

注意事项

  1. 数字框宽度需要通过CSS调整,避免输入时被截断:

    .layui-table-cell .layui-input{width: 100px;}
    
  2. 大量数据时建议使用deferRender: true延迟渲染,提高性能

  3. 服务器端验证不可少,客户端验证仅作为辅助手段

通过本文介绍的三种方案,你可以灵活实现Layui表格中的数字框编辑功能。更多高级用法可参考官方文档docs/table/index.md和源码src/modules/table.js

【免费下载链接】layui 【免费下载链接】layui 项目地址: https://gitcode.com/gh_mirrors/lay/layui

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值