Vue Element-ui 键盘事件失效的解决

 更新时间:2022年10月17日 09:43:31   作者:一个水瓶座程序猿.  
这篇文章主要介绍了Vue Element-ui 键盘事件失效的解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Element-ui 键盘事件失效

按键修饰符

vue中提供了一些按键修饰符,开发者可以直接通过按键修饰符捕捉键盘事件

Vue 允许为 v-on 在监听键盘事件时添加按键修饰符:

  • .enter
  • .tab
  • .delete (捕获“删除”和“退格”键)
  • .esc
  • .space
  • .up
  • .down
  • .left
  • .right

例如:.enter

<!-- 只有在 `key` 是 `Enter` 时调用 `vm.submit()` -->
<input v-on:keyup.enter="submit">

但是在开发过程中会遇到不生效的情况,此时我们需要加上 .native 按键修饰符

注意:只适用于 input 框 获得焦点 时按下回车时生效,失去焦点时,此功能仍不可用

<input v-on:keyup.enter.native="submit">

如果是 **button** 按钮,那么应该把它绑定在 **document** 上:

<el-button type="primary" @keyup.enter.native="submitForm('ruleForm')">去登录</el-button>

正确代码:

    // 在 created 生命周期钩子函数里写
    created:function(){
        // 主页添加键盘事件,不可以直接在焦点事件上添加回车
        var that=this;
        document.οnkeydοwn=function(event){
           var key=window.event.keyCode;  // 事件对象的 keyCode
              if(key==13){
                 that.submitForm('ruleForm');
            }
        }
    }

使用element-ui时监听登录界面全局键盘回车事件

方法一

<el-form-item prop="account">      
<el-input v-on:keyup.enter.native="handleSubmit2()" style="color: #ffffff" type="text" v-model="ruleForm.account" auto-complete="off" placeholder="账号"></el-input>
</el-form-item>

如果用了element-ui的话要在后面加上native,不然被包裹不能读取到,这种写法只能在鼠标点击输入框的时候按回车才有用

方法二

在export default里面添加钩子函数

export default {
  created() {
    var _self = this
 
    document.onkeydown = function(e) {
      var key = window.event.keyCode
 
      if (key === 13) {
        _self.handleSubmit2()
      }
    }
  },
  beforeDestroy() {
    document.onkeydown = function(e) {
      var key = window.event.keyCode
 
      if (key === 13) {
 
      }
    }
  },

如果只有created函数的话那么在其他界面按回车会依然调用函数,造成错误的页面跳转,所以要离开这个界面是要取消。

这样写就可以实现在该页面键盘回车实现登录 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 启动myvue报错npm ERR! code ENOENT npm ERR! syscall open的解决办法

    启动myvue报错npm ERR! code ENOENT npm ERR! syscall open的解

    这篇文章主要介绍了启动myvue报错npm ERR! code ENOENT npm ERR! syscall open的解决办法,文中给出了详细的解决方法,并通过图文结合的方式介绍的非常详细,需要的朋友可以参考下
    2024-03-03
  • 项目中Axios二次封装实例Demo

    项目中Axios二次封装实例Demo

    vue项目经常会用到axios来请求数据,那么首先肯定需要对这个请求方法进行一个二次封装,这篇文章主要给大家介绍了关于项目中Axios二次封装的相关资料,需要的朋友可以参考下
    2021-06-06
  • VUEX-action可以修改state吗

    VUEX-action可以修改state吗

    这篇文章主要介绍了VUEX-action可以修改state吗,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • vue使用html2PDF实现将内容导出为PDF

    vue使用html2PDF实现将内容导出为PDF

    将 HTML 转换为 PDF 进行下载是一个比较常见的功能,这篇文章将通过html2PDF实现将页面内容导出为PDF,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-11-11
  • vue.js vue-router如何实现无效路由(404)的友好提示

    vue.js vue-router如何实现无效路由(404)的友好提示

    众所周知vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用,下面这篇文章主要给大家介绍了关于vue.js中vue-router如何实现无效路由(404)的友好提示的相关资料,需要的朋友可以参考下。
    2017-12-12
  • Monorepo风格的组件工程搭建示例详解

    Monorepo风格的组件工程搭建示例详解

    这篇文章主要介绍了Monorepo风格的组件工程搭建示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • Vue框架里使用Swiper的方法示例

    Vue框架里使用Swiper的方法示例

    这篇文章主要介绍了Vue框架里使用Swiper的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Vue单页面应用做预渲染的方法实例

    Vue单页面应用做预渲染的方法实例

    vue是一个单页面的应用,这导致一些爬虫和百度无法搜索到,如果你想针对你应用的其中某些页面进行SEO优化,让他们可以被爬虫和百度搜索到,你可以进行预渲染操作,下面这篇文章主要给大家介绍了关于Vue单页面应用做预渲染的相关资料,需要的朋友可以参考下
    2021-10-10
  • Vue使用自定义指令实现页面底部加水印

    Vue使用自定义指令实现页面底部加水印

    本文主要实现给项目的整个背景加上自定义水印,可以改变水印的文案和字体颜色等,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • vueJs函数readonly与shallowReadonly使用对比详解

    vueJs函数readonly与shallowReadonly使用对比详解

    这篇文章主要为大家介绍了vueJs函数readonly与shallowReadonly使用对比详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03

最新评论