vue之输入框在火狐浏览器不能弹出问题

列表展示,点击修改弹出对应的输入框,并获取光标

代码实现

<span v-show="scope.$index !== idx"
                  style="color: #337ABE;cursor:pointer;"
                  @click="amend(scope.$index, $event)">修改</span>
<input v-if="scope.$index === idx" 
                   type="number"
                   value="remains"
                   v-model="remains"
                   @blur="parking"
                   :ref="'berths' + scope.$index"
                   min="0" />

在谷歌浏览器上可以正常弹出,但是狐火浏览器不能弹出

解决方法一,使用$ref操作DOM,定时器延时操作

setTimeout(() => {
    this.$refs['berths' + index].focus();
}, 100);

 方法二,自定义指令

火狐获取焦点过程,先el.blur(),再el.focus()

directives: {
    focus: {
      inserted(el) {
        // 使用定时器解决火狐兼容问题
        setTimeout(() => {
          el.focus();
        }, 100);
      }
    }
  }

使用

<input v-if="scope.$index === idx"
                   type="number"
                   value="remains"
                   v-focus
                   v-model="remains"
                   @blur="parking"
                   min="0" />

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值