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); } }); })
修改之后数据库也修改成功