Vue Input输入框如何自动获得焦点

本文探讨了如何在Vue应用中,确保在点击MaterialIncoming Tab后,PKGID输入框能立即获得焦点,同时避免了需要多次点击才能生效的问题。通过深入分析,作者分享了使用$nextTick()方法和ref属性的正确用法,以及autofocus属性失效的原因和解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如下图,效果:在点击Tab "Material Incoming"的时候,鼠标光标focus在PKG ID的input输入框关键代码是使用 this.$nextTick(()

        this.$nextTick(() => {

                this.$refs.pkgId.focus();

        })

注意:仅仅使用 this.$refs.pkgId.focus(); 是不起作用的,需要点击Tab Material Incoming 两次才有效,但这并不是初衷。即:

方法A:生效

    tabInitialClick(tab, event) {

      this.$nextTick(() => {

        this.$refs.pkgId.focus();

      })

    },

方法B:不生效

    tabInitialClick(tab, event) {

      this.$refs.pkgId.focus();

    },

另外,以下方法如下,使用autofocus=“true" 也不生效,原因网上资料说是因为<el-input> 外面还有其他组件 (我试了一个Form只有一个<el-input> 也没生产。不知道为什么。。。)

<el-col :span="8">

                <el-form-item label="PKG ID (S)" prop="pkgId" required>

                  <el-input v-model=" IncomingMaterialForm.pkgId" ref="pkgId" autofocus="true" placeholder="Please input pkg id" clearable style="width: 300px;" />

                </el-form-item>

              </el-col>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值