layui 可编辑表格、获取数据 作者:马育民 • 2021-10-24 16:22 • 阅读:10340 # 关键 ### 表格 增加:`edit: 'text'` ,单击单元格就会出现 输入框 更多代码如下: ``` table.render({ elem: '#main_table' ,url:'/materialAll' ,method:'post', contentType: 'application/json;charset=utf-8' ,where: { "status":1, } ,cols: [[ {type:'checkbox'} ,{field:'id', width:80, title: 'ID',hide:true} ,{field:'name',align:'center', width:155, title: '原料名称' ,templet: '<div><div class="namedesc">{{d.name}}</div></div>' } ,{ field:'wm_type',width:155, title: '原料种类', templet: '<div><div class="namedesc">{{d.name}}</div></div>' },{ field:'code',width:155, title: '原料编号', templet: '<div><div class="namedesc">{{d.code}}</div></div>' },{ field:'price',width:155, title: '库存类型', templet: '<div><div class="namedesc">{{d.type_2_text}} </div></div>' },{ field:'unit',width:155, title: '单位', templet: '<div><div class="namedesc">{{d.unit}} </div></div>' },{ field:'purchase_price',width:155,title: '采购成本价', edit: 'text', templet: '<div><div class="namedesc">{{d.purchase_price}} </div></div>' } ,{align:'center', title: '操作', toolbar: '#operation_bar'} ]] ,page: true ,parseData: function(res){ //将原始数据解析成 table 组件所规定的数据 return { "code": res.code, //解析接口状态 "msg": res.msg, //解析提示文本 "count": res.total, //解析数据长度 "data": res.data //解析数据列表 }; } ,id:'main_table' }); ``` ### 获取修改后的数据 按钮: ``` <button class="layui-btn layui-btn-danger" id="save"><i class="layui-icon"></i>保存</button> ``` 点击事件函数: ``` //点击保存按钮,获取表格所有数据 $('#save').on('click', function(){ var data=layui.table.cache["main_table"];//获取表格的数据 console.log(data); //通过ajax提交数据 }); ``` # 完整代码 ``` <!DOCTYPE html> <html class="x-admin-sm"> <head> <meta charset="UTF-8"> <title></title> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" /> <link rel="stylesheet" href="./css/font.css"> <link rel="stylesheet" href="./css/xadmin.css"> <script src="js/jquery.min.js?v=2.1.4"></script> <script src="./lib/layui/layui.js" charset="utf-8"></script> <script type="text/javascript" src="./js/xadmin.js"></script> <script src="js/doT.js"></script> <!--[if lt IE 9]> <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script> <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script> <![endif]--> <style type="text/css"> /*.layui-table-cell{*/ /* height: 100%;*/ /* max-width: 100%;*/ /*}*/ .layui-table-cell{ /*height:80px; */ /*设置此参数,表头高度也改变*/ height: auto; /*设置此样式,可以正常显示图片,显示多行文字。但不能固定列,否则表格样式乱套*/ } .namedesc{ white-space: normal;/*设置此样式,可以显示完整的文字*/ } </style> </head> <body> <div class="x-nav"> <span class="layui-breadcrumb"> <a href="">首页</a> <a href="">原料管理</a> </span> <a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right" onclick="location.reload()" title="刷新"> <i class="layui-icon layui-icon-refresh" style="line-height:30px"></i> </a> </div> <div class="layui-fluid"> <div class="layui-row layui-col-space15"> <div class="layui-col-md12"> <div class="layui-card"> <div class="layui-card-body "> <div class="layui-inline layui-show-xs-block"> <input type="text" name="keyword" id="keyword" placeholder="请输入名称/拼音/编号" autocomplete="off" class="layui-input"></div> <div class="layui-inline layui-show-xs-block"> <button class="layui-btn" id="search"> <i class="layui-icon"></i></button> </div> </form> </div> <div class="layui-card-header"> <button class="layui-btn" onclick="xadmin.open('添加','./addGoods.html',900,700)"><i class="layui-icon"></i>添加</button> <button class="layui-btn layui-btn-danger" id="batchDel"><i class="layui-icon"></i>批量删除</button> <button class="layui-btn layui-btn-danger" id="save"><i class="layui-icon"></i>保存</button> </div> <div class="layui-card-body "> <table class="layui-hide" id="main_table" lay-filter="main_table" lay-data="{height:500}"></table> </div> </div> </div> </div> </div> </body> <script type="text/html" id="operation_bar"> <a class="layui-btn layui-btn-xs" lay-event="edit" ><i class="layui-icon layui-icon-edit"></i>编辑</a> <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del" ><i class="layui-icon layui-icon-delete"></i>删除</a> </script> <script> layui.use('table', function(){ var table = layui.table; table.render({ elem: '#main_table' ,url:'/materialAll' ,method:'post', contentType: 'application/json;charset=utf-8' ,where: { "status":1, } ,cols: [[ {type:'checkbox'} ,{field:'id', width:80, title: 'ID',hide:true} ,{field:'name',align:'center', width:155, title: '原料名称' ,templet: '<div><div class="namedesc">{{d.name}}</div></div>' } ,{ field:'wm_type',width:155, title: '原料种类', templet: '<div><div class="namedesc">{{d.name}}</div></div>' },{ field:'code',width:155, title: '原料编号', templet: '<div><div class="namedesc">{{d.code}}</div></div>' },{ field:'price',width:155, title: '库存类型', templet: '<div><div class="namedesc">{{d.type_2_text}} </div></div>' },{ field:'unit',width:155, title: '单位', templet: '<div><div class="namedesc">{{d.unit}} </div></div>' },{ field:'purchase_price',width:155,title: '采购成本价', edit: 'text', templet: '<div><div class="namedesc">{{d.purchase_price}} </div></div>' } ,{align:'center', title: '操作', toolbar: '#operation_bar'} ]] ,page: true ,parseData: function(res){ //将原始数据解析成 table 组件所规定的数据 return { "code": res.code, //解析接口状态 "msg": res.msg, //解析提示文本 "count": res.total, //解析数据长度 "data": res.data //解析数据列表 }; } ,id:'main_table' }); //监听工具条 table.on('tool(main_table)', function(obj){ var data = obj.data;//一行数据 var layEvent = obj.event; if(layEvent === 'edit'){ xadmin.open('修改','./showGoods.html?id='+data.id,900,700)//窗口高、宽 }else if(layEvent === 'del'){ del(data.id,obj) } }); // table.on('edit(main_table)', function(obj){ //注:edit是固定事件名,test是table原始容器的属性 lay-filter="对应的值" // console.log(obj.value); //得到修改后的值 // console.log(obj.field); //当前编辑的字段名 // console.log(obj.data); //所在行的所有相关数据 // }); $('#search').on('click', function(){ var keyword = $('#keyword'); //执行重载 table.reload('main_table', { page: { curr: 1 //重新从第 1 页开始 } ,where: { keyword: keyword.val(), status:1, } }, 'data'); }); $('#batchDel').on('click', function(){ var checkStatus = table.checkStatus('main_table') var datas = checkStatus.data; dels(datas) }); //点击保存按钮,获取表格所有数据 $('#save').on('click', function(){ var data=layui.table.cache["main_table"];//获取表格的数据 console.log(data); //通过ajax提交数据 }); }); layui.use(['laydate'], function(){ var laydate = layui.laydate; //执行一个laydate实例 laydate.render({ elem: '#start' //指定元素 }); //执行一个laydate实例 laydate.render({ elem: '#end' //指定元素 }); }); </script> </html> ``` 原文出处:/show_1IX26HSOq6sY.html