当前位置: 首页 > news >正文

vue3中el-input无法获得焦点的问题

文章目录

    • 现象
    • 两次nextTick()加setTimeout()解决
    • 结论

现象

el-input被外层div包裹了,设置autofocus不起作用:

<el-dialog v-model="visible" :title="title" :append-to-body=true width="50%"><el-form v-model="theForm" @submit.prevent="submit"><el-form-item v-for="item in formItems" :label="item.label" :label-width="120"><el-input v-model="theForm[item.name]" ref="inputRef"autocomplete="off"           @keyup.enter.stop="submit"autofocus/></el-form-item></el-form><template #footer><span><el-button type="primary" @click="cancel()">取消</el-button><el-button type="primary" @click="submit()">确定</el-button></span></template></el-dialog>

在onMounted()中尝试: inputRef.value.focus(),也无效。怀疑是调用时机不对,但何时才是页面dom都生成好的时机呢?

两次nextTick()加setTimeout()解决

// 需要调用两次nextTick才能获得实例!!!
const focusInput = () => { nextTick(() => nextTick(()=>{    setTimeout(function () {let _eles = document.querySelectorAll('form input.el-input__inner')// console.log(_eles)_eles[0].focus()// inputRef.value.focus()}, 100);}))}onMounted(() => {focusInput()
})

结论

在vue3组件嵌套复杂时,很难确定组件之间的初始化顺序,这时尽可能让访问时机靠后是一个通用的解决方法。

http://www.lryc.cn/news/529897.html

相关文章:

  • 程序诗篇里的灵动笔触:指针绘就数据的梦幻蓝图<3>
  • (三)QT——信号与槽机制——计数器程序
  • Qt 5.14.2 学习记录 —— 이십이 QSS
  • Hot100之哈希
  • 油漆面积——蓝桥杯
  • 深度解析:网站快速收录与服务器性能的关系
  • 925.长按键入
  • JavaScript 中的 var 和 let :关键区别与使用建议
  • 寒假刷题Day19
  • 写好简历的三个关键认知
  • 工具的应用——安装copilot
  • Koa 基础篇(二)—— 路由与中间件
  • 帆软 FCA -业务分析师认证学习
  • Miniconda 安装及使用
  • solidity高阶 -- Eth支付
  • 深入理解Java中的String
  • 洛谷 P1734 最大约数和 C语言
  • Golang 执行流程分析
  • python学opencv|读取图像(五十一)使用修改图像像素点上BGR值实现图像覆盖效果
  • Flask数据的增删改查(CRUD)_flask删除数据自动更新
  • kamailio-ACC模块介绍【kamailio6.0. X】
  • 数据库对象
  • EtherCAT主站IGH-- 27 -- IGH之globals.h文件解析
  • 2025多目标优化创新路径汇总
  • 15JavaWeb——Maven高级篇
  • 使用Ollama本地化部署DeepSeek
  • 蓝桥杯刷题DAY1:前缀和
  • 【基于SprintBoot+Mybatis+Mysql】电脑商城项目之用户注册
  • MINIRAG: TOWARDS EXTREMELY SIMPLE RETRIEVAL-AUGMENTED GENERATION论文翻译
  • 微服务入门(go)