广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue中@keyup.enter失效问题及解决
  • 391
分享到

vue中@keyup.enter失效问题及解决

vue中@keyup.enter@keyup.enter失效vue中@keyup.enter失效 2022-11-13 18:11:54 391人浏览 安东尼
摘要

目录@keyup.enter失效问题情况一(我遇到的情况)情况二(百度时了解到的)@keyup.enter和@blur触发两次和回车无效1.Vue 对 input 绑定两个事件:回车

@keyup.enter失效问题

情况一(我遇到的情况)

@keyup.enter外部存在fORM表单,并且form表单里只有一个input

原因:当form表单内只有一个input按回车键会自动提交表单

解决办法:多增加一个不可见的input即可 

情况二(百度时了解到的)

在同一个标签同时添加@click和@keyup.enter

解决办法:分开放,比如@keyup.enter通常放在input里面,@click放在button里面

@keyup.enter和@blur触发两次和回车无效

1.vue 对 input 绑定两个事件:回车或失焦

<input
   v-else
   ref="input"
   v-model="inputValue"
   type="text"
   :placeholder="placeholder"
   @keyup="save"
   @blur="save"
 />
save(e) {
  console.log(e)   // 可以打印出事件的内容
  if (e.keyCode === 13 || e.type === 'blur') {
    this.pShow = !this.pShow
    this.$emit('update', this.$attrs['step-index'], this.inputValue)
  }
}

要求 input 框失焦或者键盘按下 Enter 键时触发 save 事件,但是实际上在按下 Enter 键后,会触发两次save 事件

原因:键盘按下 Enter 键执行 save 方法同时会自动触发 blur事件,导致 save 被执行了两次

2.解决: 键盘按下 Enter 键执行 blur

<input
   v-else
   ref="input"
   v-model="inputValue"
   type="text"
   :placeholder="placeholder"
   @keyup.enter.native="$event.target.blur"
   @blur="save"
 />

2.问题:按下 Enter 并不能触发事件

需要将 @keyup.enter.native="$event.target.blur" 改成 @keyup.enter="$event.target.blur" , 如果 input 是 el-input 可以用第一个方法

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: vue中@keyup.enter失效问题及解决

本文链接: https://www.lsjlt.com/news/169484.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作