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

目录
  • Element-ui 键盘事件失效
    • 按键修饰符
  • 使用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函数的话那么在其他界面按回车会依然调用函数,造成错误的页面跳转,所以要离开这个界面是要取消。

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

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

(0)

相关推荐

  • 解决element-ui中下拉菜单子选项click事件不触发的问题

    将@click改为@click.native='logoutHandle';即可监听选项的点击事件. <el-dropdown class="pull-right" > <span class="el-dropdown-link"> <img src="./img/header.jpg" alt="" class="pull-right"> </span> &

  • vue element-ui 绑定@keyup事件无效的解决方法

    解决办法: <el-input v-model="searchParmas.gameName" placeholder="游戏名称" class="w120" @keyup.native="getGameList(searchParmas.gameName)"></el-input> 加上.native覆盖原有封装的keyup事件即可. 以上这篇vue element-ui 绑定@keyup事件无效的解

  • 解决element-ui的el-select选择器的@blur事件失效的坑

    目录 element-ui的el-select选择器的@blur事件失效 解决 使用el-select中的@blur遇到的问题 解决 element-ui的el-select选择器的@blur事件失效 element-UI文档中本来el-select有个blur事件绑定函数属性. 但是使用后发现有时候失焦事件并不能触发生效,也就导致所绑定的函数不能执行. 解决 利用el-select的@focus方法,在select标签内 添加 ref 于此便可在focus事件内触发 blur事件. 代码如下:

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

    目录 Element-ui 键盘事件失效 按键修饰符 使用element-ui时监听登录界面全局键盘回车事件 方法一 方法二 Element-ui 键盘事件失效 按键修饰符 vue中提供了一些按键修饰符,开发者可以直接通过按键修饰符捕捉键盘事件 Vue 允许为 v-on 在监听键盘事件时添加按键修饰符: .enter .tab .delete (捕获“删除”和“退格”键) .esc .space .up .down .left .right 例如:.enter <!-- 只有在 `key` 是

  • 解决vue组件中click事件失效的问题

    最近使用vue学习开发移动端的项目,使用了bette-scroll插件做滚动.在引入better-scroll的组件中使用@click事件的时候,点击事件失效,v-on:click.v-bind:click.@click.native都不行,试了一下@touchstart是却是可以的,发现better-scroll的配置中没有设置click:true,设置过之后click事件成功. 后来在使用vuex的时候一直报"[vuex] unknown mutation type: changeCity&

  • 解决Vue+Element ui开发中碰到的IE问题

    IE9样式错乱,IE11无法正常加载v-loading等问题 引入了babel-polyfill插件,依然出现"polyfill-eventsource added missing EventSource to window"的奇怪问题(ie所有版本都有出现) 第一步:安装babel-ployfill (已安装请跳过此步骤) yarn add babel-ployfill 修改webpack打包配置文件:webpack.bash.conf.js // 引入babel-ployfill

  • 解决vue+ element ui 表单验证有值但验证失败问题

    一.如图:有值但是验证失败 二. <el-form :model="form" :rules="rules"> <el-form-item label="数据模板" prop="template" > <el-col :span="20"> <el-input type="textarea" v-model="form.template

  • 在vue+element ui框架里实现lodash的debounce防抖

    事情起因在:我使用element ui框架里的远程搜索框,在单选时,组件内部已经做了防抖,query是在一段时间内的字符串.但是在多选时,并没有做防抖,而是每输入一个字符都要向后台发一次请求,所以必须防抖,官方推荐使用lodash的debounce 在解决这个问题时,我遇到的坎儿主要有以下: 我首先在项目里用npm安装lodash,先全局安装,然后安装到项目 npm install -g lodash npm install --save lodash 安装后,我就在我要用防抖的组件里,引入lo

  • Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义

    本文为大家分享了Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义,供大家参考,具体内容如下 1.安装 npm install vue-quill-editor --save 2.在main.js中引入 import VueQuillEditor from 'vue-quill-editor' import 'quill/dist/quill.core.css' import 'quill/dist/quill.snow.css' import 'quil

  • Vue 框架之键盘事件、健值修饰符、双向数据绑定

    一.键盘事件,当按键盘时,在控制台输出提示 html 源码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>VueLearn-cnblogs/xpwi</title> <!--引入自定义的样式--> <link rel="stylesheet" href="css/style.css&quo

  • Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)

    这篇博客主要介绍树形控件的两个小小的功能: 下拉菜单 输入过滤框 以CSS样式为主,也会涉及到Vue组件和element组件的使用. 对于没有层级的数据,我们可以使用表格或卡片来展示.要展示或建立层级关系,就一定会用到树形组件了. 使用Vue + Element UI,构建出最基本的树如下图所示: 现在我们就要在这个基础上进行改造,使页面更加符合我们的交互场景. 下拉菜单 将下拉菜单嵌到树节点中,使操作更加简便.紧凑. 效果演示 效果如图: 图示1:悬浮在树节点状态 图示2:点击三个点图标状态

  • vue element ui validate 主动触发错误提示操作

    elementUI使用了async-validator进行表单验证,但是当我使用下拉树(el-cascader)时,发现其不主动触发,于是我只能主动去触发,方法如下: this.$refs['form'].fields[0].validateMessage = 'error message' this.$refs['form'].fields[0].validateState = 'error' 补充知识:element-ui 打开页面触发校验问题 如果你设置了关闭弹出页就resetFields

随机推荐