对vue 键盘回车事件的实例讲解


Posted in Javascript onAugust 25, 2018

如果是原生的input,使用 @keyup.enter就可以,若是使用了element-ui,则要加上native限制符,因为element-ui把input进行了封装,原事件就不起作用了,代码如下:

<input v-model="form.name" placeholder="昵称" @keyup.enter="submit">
<el-input v-model="form.name" placeholder="昵称" @keyup.enter.native="submit"></el-input>

现在发现这个键盘事件好像对input框支持比较好,其他的元素多少会有点问题,或者直接无效,究其原因是其他的元素没有获取焦点或者没有键盘事件。

我现在的解决方式,

如果是没有键盘事件使用css把input框绝对定位到需要绑定键盘事件的元素之上并且把input框设置为透明,把该input框与原来要绑定键盘事件的元素进行绑定,达到效果;

test.vue

<div class="container">
 <input class="item opa" @keyup="deleteDiv">
 <div class="item">div内容</div>
 <span click="DeleteDiv">X</span>
</div>

css:

div.container{
 position:relative;
}
.item{
 position:absolute;
 top:0;
 left:0;
 width:100px;
 height:100px;
 border:1px solid #ccc;
}
.opa{
 opacity:0;
 z-index:5;
}
span{
 position:absolute;
 top:5px;
 right:5px;
 z-index:10;
}

js:

methods:{
 deleteDiv(){
 alert("delete");
 }
}

如果是没有获取焦点,则可以写一个自定义指令自动获取焦点,

自动获取焦点自定义指令见我另一篇文章 点击进入

拓展知识:vuejs 2.0 键盘事件详解

如下所示:

<!DOCTYPE html>
<html>
<head>
 <title></title>
 <meta charset="utf-8">
 <script src="vue.js"></script>

 <script type="text/javascript">
 window.onload = function(){
  var vm = new Vue({
  el:'#box',
  methods:{
   show:function(ev){
   if(ev.keyCode == 13){
    alert('你按回车键了');
   }
   },
  }
  });
 }
 </script>
</head>
<body>
 <div id="box">
 <input type="text" placeholder="请输入" @keyup="show($event)"> 

 <input type="text" placeholder="请输入" @keyup.13="show($event)">
 </div>
</body>
</html>

当按下键盘的时候,执行show方法,然后再去执行相应的业务。

两个input的效果都是一样的 如果安13 也就是按键 enter 才会执行弹窗!!

@keyup.13 回车

@keyup.enter 回车

@keyup.left 左键

@keyup.right 右键

@keyup.up 上键

@keyup.down 下键

@keyup.delete 删除键

以上这篇对vue 键盘回车事件的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js父页面与子页面不同时显示的方法
Oct 16 Javascript
JavaScript将XML转成JSON的方法
Mar 12 Javascript
浅谈javascript中return语句
Jul 15 Javascript
javascript日期比较方法实例分析
Jun 17 Javascript
JavaScript简单验证表单空值及邮箱格式的方法
Jan 20 Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
May 08 jQuery
Koa2微信公众号开发之本地开发调试环境搭建
May 16 Javascript
jQuery插件jsonview展示json数据
May 26 jQuery
ES6 class的应用实例分析
Jun 27 Javascript
Vue实现base64编码图片间的切换功能
Dec 04 Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
Mar 12 jQuery
用vue写一个日历
Nov 02 Javascript
vue点击input弹出带搜索键盘并监听该元素的方法
Aug 25 #Javascript
vue 自定义指令自动获取文本框焦点的方法
Aug 25 #Javascript
vue.js项目 el-input 组件 监听回车键实现搜索功能示例
Aug 25 #Javascript
vue+mousemove实现鼠标拖动功能(拖动过快失效问题解决方法)
Aug 24 #Javascript
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
Aug 24 #Javascript
微信小程序Getuserinfo解决方案图解
Aug 24 #Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
Aug 24 #Javascript
You might like
PHP 和 MySQL 基础教程(三)
2006/10/09 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
2013/04/28 PHP
php文件服务实现虚拟挂载其他目录示例
2014/04/17 PHP
PHP 之 写时复制介绍(Copy On Write)
2014/05/13 PHP
学习php设计模式 php实现模板方法模式
2015/12/08 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
jquery Firefox3.5中操作select的问题
2009/07/10 Javascript
jquery实现文本框鼠标右击无效以及不能输入的代码
2010/11/05 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
2013/12/18 Javascript
使用jquery写个更改表格行顺序的小功能
2014/04/29 Javascript
利用原生JavaScript获取元素样式只是获取而已
2014/10/08 Javascript
node.js中的fs.createReadStream方法使用说明
2014/12/17 Javascript
javascript实现多级联动下拉菜单的方法
2015/02/06 Javascript
js实现网页收藏功能
2015/12/17 Javascript
javascript结合Flexbox简单实现滑动拼图游戏
2016/02/18 Javascript
jQuery+ajax简单实现文件上传的方法
2016/06/03 Javascript
nodejs 实现钉钉ISV接入的加密解密方法
2017/01/16 NodeJs
jquery插件canvaspercent.js实现百分比圆饼效果
2017/07/18 jQuery
原生JS实现小小的音乐播放器
2017/10/16 Javascript
基于webpack4搭建的react项目框架的方法
2018/06/30 Javascript
JavaScript偏函数与柯里化实例详解
2019/03/27 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
详解在Vue.js编写更好的v-for循环的6种技巧
2020/04/14 Javascript
Python专用方法与迭代机制实例分析
2014/09/15 Python
Anaconda多环境多版本python配置操作方法
2017/09/12 Python
美国最顶级的精品店之一:Hampden Clothing
2016/12/22 全球购物
Sunglasses Shop德国站:欧洲排名第一的太阳镜网站
2017/08/01 全球购物
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
综合实践活动总结
2014/05/05 职场文书
语文教育专业求职信
2014/06/28 职场文书
如何写早恋检讨书
2014/09/10 职场文书
标准单位租车协议书
2014/09/23 职场文书
学校总务处领导干部个人对照检查材料思想汇报
2014/10/06 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话
2014/10/21 职场文书
通知的写法
2015/04/23 职场文书
详解GaussDB for MySQL性能优化
2021/05/18 MySQL