layui之单元格通过键盘切换编辑

支持 enter,上,下,右键 切换单元格,支持隐藏列跳过切换。

一、edit:‘tex’ 开启单元格修改状态

在这里插入图片描述
开启后单元格可编辑但是无法切换
在这里插入图片描述

二、通过键盘切换单元格处理函数

<script>
   //方向键的切换
   $(document).on('keydown', '.layui-table-edit', function (e) {
      var td = $(this).parent('td'),
      tr = td.parent('tr'),
      trs = tr.parent().parent().find("tr")
      tr_index = tr.index(),
      td_index = td.index(),
      td_last_index = tr.find('[data-edit="text"]:last').index(),
      td_first_index = tr.find('[data-edit="text"]:first').index();
      switch (e.keyCode) {
           case 13:
           case 39:
           td.nextAll('[data-edit="text"]:first').click();
       if (td_index == td_last_index) {
           tr.next().find('td').eq(td_first_index).click();
           if (tr_index == trs.length - 1) {
                trs.eq(0).find('td').eq(td_first_index).click()
                        }
                    }
           setTimeout(function () {
               $('.last-table-edit').select()
           }, 0)
               break;
           case 37:
               td.prevAll('[data-edit="text"]:first').click();
               setTimeout(function () {
                   $('.last-table-edit').select()
                    }, 0)
                    break;
           case 38:
               tr.prev().find('td').eq(td_index).click();
               setTimeout(function () {
                    $('.last-table-edit').select()
                    }, 0)
                    break;
           case 40:
               tr.next().find('td').eq(td_index).click();
               setTimeout(function () {
                   $('.last-table-edit').select()
                    }, 0)
               break;
            }
        });
</script>

可通过键盘切换单元格
在这里插入图片描述
但是无法保存到数据库,页面刷新数据未修改成功

三、与后台交互代码

 //键盘切换编辑
        table.on('edit(dataTable)',function (obj1) {
            //回车即保存
            var data =JSON.stringify(obj1.data);
            var model1 = document.getElementById("model");
            var model=model1.value;
            var createtime1 = document.getElementById("createtime");
            var createtime=createtime1.value;
            console.log(model);
            $.ajax({
                type : "POST",
                dataType: "json",//通过GET方式上传请求
                contentType : "application/json",//上传内容格式为json结构
                data : data,                                 //上传的参数
                async: false ,
                url : "/updateLocation?model="+model+"&createtime="+createtime,
                success : function(data) {          //请求成功的回调函数
                    if (data.code == 1000) {
                        layer.msg("编辑成功");
                    }else {
                        layer.msg(data.msg, { icon: 5 });
                    }
                },
                error : function(e) {           //请求失败的回调函数
                    console.info(e);
                }
            });
        })

修改之后数据库也修改成功
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值