vue 添加enter回车事件

问题所在:今天遇到一个需求,给el-button组件添加点击事件,之前对这块一直一知半解,所以特此总结一下
解决方法:
Vue 允许为 v-on 在监听键盘事件时添加按键修饰符,所以对一个普通的Vue input组件,可以这样实现一个回车事件:

//当点击了回车时,便会调用function函数
<input v-on:keyup.13="function">

但是对于开发来说,键盘事件对应的keyCode比较难记,所以Vue 为常用的按键设置了别名,这样我们就无需再去匹配keyCode,直接使用别名就能监听按键的事件。
(别名可参考:https://blog.csdn.net/qq_38591756/article/details/88732443
所以上面的代码,等同于:

//当点击了回车时,便会调用function函数
<input v-on:keyup.enter="function">

还有一种缩写语法(比较常用):

//当点击了回车时,便会调用function函数
<input @keyup.enter="function">

注意:

但是,如果是在自己封装的组件或者是使用一些第三方的UI库(比如element-ui)时,会发现并不起效果,这时就需要用到.native修饰符了,如:

<el-input
  v-model="inputName"
  placeholder="输入你的名称"
  @keyup.enter.native="searchPerson"
  >
</el-input>

在使用过程中,如果页面只针对一个Input添加键盘enter事件,可以按照上面的情况解决。但是如果是要对页面的button添加enter键盘事件,就不能写在input或者button上,因为获取不到焦点,这时候可以直接写在created或者mounted里,直接绑定在document上。如下:

mounted() {
    let that = this
    document.onkeydown = function (e) {
      e = window.event || e
      //保证是在登录页面发出的enter事件
      if ((that.$route.path === '/login'||that.$route.path === '/') && (e.code === 'Enter' || e.code === 'enter')) {
        //调用登录函数
        that.login();
      }
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. 事件绑定 v-on v-on:事件名=“执行内容” v-on:click=“num=1”简写方法: @事件名...
    Daeeman阅读 472评论 1 1
  • 事件处理 监听事件 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码。 结果: A...
    Sunshinga阅读 1,147评论 0 0
  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 5,183评论 0 29
  • 主要还是自己看的,所有内容来自官方文档。 介绍 Vue.js 是什么 Vue (读音 /vjuː/,类似于 vie...
    Leonzai阅读 3,544评论 0 25
  • 渐变的面目拼图要我怎么拼? 我是疲乏了还是投降了? 不是不允许自己坠落, 我没有滴水不进的保护膜。 就是害怕变得面...
    闷热当乘凉阅读 4,502评论 0 13

友情链接更多精彩内容