登录    关于
马育民老师的博客

马育民的博客

QQ:65242847

layui 可编辑表格、获取数据

关键

表格

增加: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">&#xe615;</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>

原文出处:http://malaoshi.top/show_1IX26HSOq6sY.html