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