layui-table可编辑表格中给edit个焦点

提问 未结 27 8254
Pencil
Pencil 2018-5-29
悬赏:20飞吻
版本:layui 浏览器:
问大神们一个问题!
我在开发过程用到了layui-table中的开启可编辑表格样式
我在使用这个表格时 想让他编辑表格,当表格中的edit为空时 弹出对话框提示字段为空 然后对话框提示完成后消失,我想让光标停留在刚才编辑的表格的endit上
大神们,你们有解决方案码?
回帖
  • @指尖的袅袅岁月 可以试试这个
    // 监听编辑如果评分负数给回滚到修改之前并且弹出提示信息并且重新获得焦点等待输入
    table.on('edit(test)', function (obj) {
    var tableId = obj.tr.closest('.layui-table-view').attr('lay-id');
    var trIndex = obj.tr.data('index');
    var that = this;
    var tdElem = $(that).closest('td');

    var field = obj.field;
    var value = obj.value;
    if (field === 'score') {
    value = parseInt(value);
    if (value < 0) {
    setTimeout(function () {
    // 小于0回滚再次获得焦点打开
    // obj.update({score: table._dataTemp[tableId][trIndex][field]});
    obj.update({score: 0});
    layer.msg('评分不能为负数!', {anim: 6});
    tdElem.click();
    }, 100);
    }
    }
    });
    1 回复
  • 这些逻辑可以在table的编辑监听中实现
    http://www.layui.com/doc/modules/table.html#onedit
    比如检查到值为空就弹出提示,然后js点击一下这个td就可以了
    0 回复
  • Pencil
    2018-5-29
    @岁月小偷 刚刚给表格一个focus();方法还不管用
    0 回复
  • AndySun
    2018-6-7
    LayUI的Table中的输入框是在点击表格的单元格的时候才创建出来的,调用focus方法是没有效果的,因为这时候输入框对象还没有创建。
    解决的方法是按“岁月小偷”所说的,获取到你要显示输入框的单元格,然后触发这个单元格的click事件,这样LayUI的table框架就会将输入框显示出来了。
    0 回复
  • 痛过
    2018-9-18
    大佬你这个添加没问题吗? 求代码可以吗?
    0 回复
  • schemering
    2018-12-6
    @岁月小偷 获取到对应的td,设置点击事件还是不能让它获取焦点啊?
    0 回复
  • @schemering 需要settimeout一下,你试试看
    setTimeout(function(){$(.....).click()}, 0);
    0 回复
  • schemering
    2018-12-6
    @岁月小偷 还是没有改变,不能获取焦点
    0 回复
  • schemering
    2018-12-6
    @岁月小偷 可以了,谢谢
    0 回复
  • @schemering 嗯嗯,不客气[微笑]
    0 回复