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

el-input 按回车失去焦点

@keyup.enter.native="$event.target.blur()"

<el-input v-model="total" @keyup.enter.native="$event.target.blur()" placeholder="按回车失去焦点" />

✅ 原理说明

1. @keyup.enter 是什么?

这是 Vue 的按键修饰符语法,表示监听键盘抬起事件,并且只在按的是 Enter 键 时触发。

2. .native 是干什么的?

  • <el-input> 是一个组件(不是原生 DOM 元素);
  • 默认情况下,@keyup.enter 不会冒泡到父组件;
  • 加上 .native 后,表示监听的是该组件根元素上的原生 DOM 事件;

即:@keyup.enter.native 等价于监听 <input> 原生元素上的 keyup.enter 事件。

3. $event.target.blur() 是什么?

  • $event.target 拿到当前触发事件的 DOM 元素(即 <input>);
  • .blur() 方法会让这个元素失去焦点;
  • 效果就是:用户按回车 → 输入框失焦 → 触发 @blur 事件;

✅ 这种写法是否推荐?

方式是否推荐说明
@keyup.enter.native="$event.target.blur()"✅ 推荐(简单场景)快速实现回车失焦,无需额外方法
使用自定义方法如 @keyup.enter="handleEnter"✅ 推荐(复杂交互)更灵活,可扩展提交、校验等逻辑

在 el-input 中实现按回车键失去焦点,可以通过监听回车事件并手动触发 blur 方法。以下是两种实现方式:

方法 1:使用 @keyup.enter.native 和事件对象

  1. 监听回车事件:使用 @keyup.enter.native 监听原生回车事件(.native 确保监听原生事件)。

  2. 调用 blur 方法:在事件处理函数中,通过 event.target 获取输入框元素并调用 blur()

html

复制

下载

运行

<el-input @keyup.enter.native="handleEnter" />

javascript

复制

下载

methods: {handleEnter(event) {event.target.blur(); // 直接让输入框失去焦点}
}

方法 2:通过 ref 获取输入框元素

  1. 绑定 ref:给 el-input 绑定一个引用名(如 inputRef)。

  2. 监听回车事件:同样使用 @keyup.enter.native

  3. 通过 ref 触发失焦:通过 this.$refs.inputRef 获取组件实例,再定位到内部的 input 元素。

html

复制

下载

运行

<el-input ref="inputRef" @keyup.enter.native="handleEnter" />

javascript

复制

下载

methods: {handleEnter() {// 通过 ref 获取输入框元素并失焦this.$refs.inputRef.$el.querySelector('input').blur();}
}

注意事项

  • .native 修饰符:由于 el-input 是自定义组件,直接监听 @keyup.enter 可能无效,需添加 .native 监听原生事件。

  • 兼容性:如果 Element UI 版本更新导致组件内部结构变化(例如 input 元素的路径不同),方法 2 可能需要调整选择器。此时方法 1 更稳定。

  • 失去焦点的作用:失焦后,输入框会触发 blur 事件,可结合其他逻辑(如表单校验)。

总结

推荐 方法 1(直接通过 event.target.blur()),代码更简洁且依赖较少。若遇到 event.target 指向问题(如嵌套其他元素),再改用方法 2。

http://www.xdnf.cn/news/8770.html

相关文章:

  • 【java】小练习--零钱通
  • 第十四章:数据治理之数据源:数据源的数据接入、业务属性梳理及监控
  • 人形机器人硬件技术剖析:部件、难点与突破路径
  • vocabulary in code
  • AI大模型(三)openAI大模型应用
  • [爬虫知识] IP代理
  • 2021-10-28 C++判断完全平方数
  • NVMe高速传输之摆脱XDMA设计1
  • 9:多线程(2)
  • 再论自然数全加和-2
  • 开疆智能Profinet转Profibus网关连接Type8644自动化控制系统案例
  • Pr -- 耳机没有Pr输出的声音
  • 算法笔记·数学·约数之和
  • PCIE 4.0 vs PCIE 5.0固态硬盘——区别、科普与选购场景全解析
  • yolov11使用记录(训练自己的数据集)
  • 无损图片压缩 本地处理 批量处理提升效率 无需联网+无广告
  • 代码混淆技术的还原案例
  • LangChain
  • [软件测试_5] 设计用例 | 等价法 | 判定表法 | 正交法(allpairs.exe)
  • 【人工智能】AI的炼金术:大模型训练的秘密配方
  • C语言-枚举
  • 一周学会Pandas2 Python数据处理与分析-Pandas2数据合并与对比-pd.concat():轴向拼接
  • wan2.1代码笔记
  • 简说IMM
  • AI 理论- 模型优化 - 注意力机制
  • 整平机技术进阶:从原理到实战的深度解析
  • MD5加密(Java)
  • 如何快速解决 java maven项目中jar冲突的问题
  • CAU人工智能class6 ResNet
  • 业务设计篇隐私合规检测URL 重定向资源拒绝服务配合项目