编程案例——layui的table表格并获取选中的数据、layui监控select下拉框并将隐藏的div显示


table表格展示

效果

在这里插入图片描述

代码
前端代码
<html>
<body>
<table id="demo" lay-filter="demo"></table>
</body>
<script src="/static/js/jquery-1.8.3.min.js"></script>
<script>
 layui.use('table', function () {
        var table = layui.table;

        //第一个实例
        table.render({
            elem: '#demo'
            , height: 465
            , url: '/sewage/manage/data' //数据接口
            , page: true //开启分页
            , cols: [[ //表头
                {type: 'radio', title: '', width: 50, align: 'center', fixed: 'left'}
                , {field: 'facid', title: 'id', width: 80, align: 'center', sort: true}
                , {field: 'facname', title: '名称', width: 100, align: 'center'}
                , {field: 'time', title: '数据时间', width: 150, align: 'center', sort: true}
                , {field: 'recplan', title: '收款计划', width: 150, align: 'center'}
                , {field: 'recrecords', title: '应收记录', width: 150, align: 'center'}
                , {field: 'colrecords', title: '收款记录', width: 150, align: 'center'}
                , {field: 'outamount', title: '未收金额', width: 150, align: 'center', sort: true}
                , {field: 'ctdt', title: '创建时间', width: 150, align: 'center', sort: true}
            ]]
        });
    });
</script>
</html>
后端代码:我们需要注意后端给前端返回数据的格式
@RequestMapping("data")
    @ResponseBody
    public Object data(@RequestParam(value = "facid", required = false) String facId,
                       @RequestParam(value = "page", required = false) String current,
                       @RequestParam(value = "limit", required = false) String size,
                       @RequestParam(value = "startTime",required = false) String startTime,
                       @RequestParam(value = "endTime",required = false) String endTime) {
        if (StringUtils.isBlank(facId)) {
            facId = "111";
        }
        QueryWrapper<Wxdetails> query = Wrappers.query();
        query.eq("facid", facId);
        if(StringUtils.isNotBlank(startTime)){
            query.ge("time",startTime);
        }
        if(StringUtils.isNotBlank(endTime)){
            query.le("time",endTime);
        }
        Page<Wxdetails> page = new Page<>();
        page.setCurrent(Integer.valueOf(current));
        page.setSize(Integer.valueOf(size));
        Page<Wxdetails> data = wxdetailsService.page(page, query);
        Map<String, Object> map = new HashMap<>();
        map.put("code", 0); //返回数据格式
        map.put("msg", "");//返回数据格式
        map.put("count", data.getTotal());//返回数据格式
        map.put("data", data.getRecords());//返回数据格式
        return map;
    }

获取radio标签所对应的数据条目

问题描述

在这里插入图片描述

解决办法
 var selectData = layui.table.checkStatus('demo').data;
        console.log(selectData); 

layui监控select下拉框并将隐藏的div显示

问题描述

选择"江苏大众"前
在这里插入图片描述
选择"江苏大众"后
在这里插入图片描述

代码

html

        <div class="layui-form-item">
            <label class="layui-form-label">选择公司</label>
            <div class="layui-input-block">
                <select name="interest" id="companyId" lay-filter="company">
                    <option value=""></option>
                    <option value="0">大众嘉定</option>
                    <option value="1">江苏大众</option>
                </select>
            </div>
        </div>
        <div class="layui-form-item" style="display: none;" id="dwId">
            <label class="layui-form-label">选择单位</label>
            <div class="layui-input-block">
                <select name="interest">
                    <option value=""></option>
                    <option value="0">三八河</option>
                    <option value="1">邳州</option>
                    <option value="2">贾汪</option>
                    <option value="3">沛县</option>
                    <option value="4">青山泉</option>
                    <option value="5">东海</option>
                </select>
            </div>
        </div>

js

<script>
    layui.use('form', function () {
        var form = layui.form;
        //监听提交
        form.on('select(company)', function (data) {
            // console.log(data.elem); //得到select原始DOM对象
            // console.log(data.value); //得到被选中的值
            // console.log(data.othis); //得到美化后的DOM对象
            var value = data.value;
            if (value == "1") {
                $("#dwId").show();
            } else if (value == "0") {
                $("#dwId").hide();
            }
        });
        form.on('submit(formData)', function (data) {
            layer.msg(JSON.stringify(data.field));
            return false;
        });
    });
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您想在 layui 表格中的下拉框中回显已有的数据,可以使用 `table.on('edit')` 事件和 `form.val()` 方法。 以下是一个示例: HTML 代码: ```html <table id="demo" lay-filter="test"></table> ``` JavaScript 代码: ```javascript layui.use(['table', 'form'], function(){ var table = layui.table; var form = layui.form; //渲染表格 table.render({ elem: '#demo', url: '/demo/table/user/', cols: [[ {field:'id', title:'ID', width:80, sort:true}, {field:'username', title:'用户名', width:120}, {field:'sex', title:'性别', width:80, templet: function(d){ return '<div class="layui-table-cell laytable-cell-1-0-2">' + (d.sex === '男' ? '<select name="sex" lay-filter="sex"><option value="男" selected>男</option><option value="女">女</option></select>' : '<select name="sex" lay-filter="sex"><option value="男">男</option><option value="女" selected>女</option></select>') + '</div>'; }}, {field:'city', title:'城市', width:100}, {field:'sign', title:'签名', width:150, edit:'text'}, {field:'experience', title:'积分', width:80, sort:true, edit:'text'}, {field:'ip', title:'IP', width:120}, {field:'logins', title:'登入次数', width:100, sort:true}, {field:'joinTime', title:'加入时间', width:120}, {fixed:'right', title:'操作', toolbar:'#barDemo', width:150} ]], page: true }); //监听单元格编辑 table.on('edit(test)', function(obj){ var value = obj.value; //得到修改后的值 var data = obj.data; //得到所在行所有键值 var field = obj.field; //得到字段 //更新到后台 $.ajax({ type: "POST", url: "/demo/table/edit/", data: { id: data.id, field: field, value: value }, success: function(res){ if(res.code === 0){ layer.msg(res.msg); }else{ layer.msg(res.msg, {icon: 5}); } }, error: function(){ layer.msg('网络错误,请稍后重试!', {icon: 5}); } }); }); //监听下拉框 form.on('select', function(data){ var value = data.value; //得到选中的值 var field = data.elem.name; //得到所在字段 //更新到后台 $.ajax({ type: "POST", url: "/demo/table/edit/", data: { id: data.elem.dataset.id, field: field, value: value }, success: function(res){ if(res.code === 0){ layer.msg(res.msg); }else{ layer.msg(res.msg, {icon: 5}); } }, error: function(){ layer.msg('网络错误,请稍后重试!', {icon: 5}); } }); }); //渲染下拉框 table.on('renderTest', function(obj){ var select = '<select name="sex" lay-filter="sex" data-id="' + obj.data.id + '"><option value="男">男</option><option value="女">女</option></select>'; obj.tr.find('td:eq(2)').html(select); form.val('test', { 'sex': obj.data.sex }); form.render('select'); }); //渲染工具栏 table.on('toolbar(test)', function(obj){ if(obj.event === 'add'){ //添加操作 layer.msg('添加操作'); } }); }); ``` 在上面的代码中,我们使用了 `templet` 属性来渲染下拉框,并在 `renderTest` 事件中使用 `form.val()` 方法来回显已有的数据。在 `form.on('select')` 事件中,我们将修改后的值更新到后台。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值