Vue的组件table中遍历my-input组件(绑定row数据)进行根据id对div进行focus

49 篇文章 2 订阅
5 篇文章 0 订阅

一、Vue的ref进行focus

无效,同列遍历出来的input依然可以跳转

二、根据div元素的id进行focus

无效,div本身无法聚焦

三、使div元素可聚焦

1.1、div中的tabindex属性

tabindex只能用数字
所以这样无效

这个当了浏览器就是个以div包裹的了
<my-input
:tabindex="'columnLen'+ row.sort" 
        :id="'columnLen'+ row.sort"
        v-model="row.length"
        size="small"
        @blur="handleBlur(row)"
      ></my-input>

直接用sort(自定的索引)遍历,在blur事件中会在同列竖排中的input在按tab键时根据tabindex(tab的索引的大小)跳转

<my-input
:tabindex="row.sort" 
        :id="'columnLen'+ row.sort"
        v-model="row.length"
        size="small"
        @blur="handleBlur(row)"
      ></my-input>

所以focus事件没有起作用

1.2、html5中div的属性contenteditable
  • contenteditable="true"div元素可以代替input进行文本编辑

所以这里在blur事件后根据条件成功聚焦(效果会有一个带样式的框框包住这个div元素)

<my-input
        contenteditable="true"
        :id="'columnLen'+ row.sort"
        v-model="row.length"
        size="small"
        @blur="handleBlur(row)"
      ></my-input>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值