让光标一直聚焦在某个输入框

日常开发中总是能遇到一些特殊的需求,比如:
在这里插入图片描述
如上图,载体编号由扫码枪扫码返回,因为扫码枪扫码之后的输出是在光标位置,光标在哪里它就在哪里输出结果,所以为了用户体验和防止用户错误操作,要实现不管用户做什么操作光标始终定位在输入框。

在这里插入图片描述

思路:要光标始终聚焦在出库单输入框,第一时间想到input的focus属性,但实际中如果进行了其他操作,这个时候光标就从输入框失焦了。

在这里插入图片描述
思来想去最终决定监听用户click事件,废话不多说上代码。

<template>
  <div style="width: 500px; padding: 50px;">
    <el-form :model="ruleForm" ref="ruleForm" label-width="100px">
      <el-form-item label="载体编号">
        <el-input v-model="ruleForm.ztCode" ref="myInput">
          <el-button slot="append" type="primary" size="mini">录入</el-button>
        </el-input>
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      ruleForm: {
        ztCode: ''
      }
    }
  },
  beforeDestroy() {
    document.removeEventListener('click', this.preventBlur)
  },
  mounted() {
    this.$refs.myInput.focus()
    document.addEventListener('click', this.preventBlur)
  },
  methods: {
    preventBlur(event) {
      const element = this.$refs.myInput.$el
      if (!element.contains(event.target)) {
        this.$refs.myInput.focus()
      }
    }
  }
}
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值