对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 相关文章推荐
jquery创建表格(自动增加表格)代码分享
Dec 25 Javascript
jQuery的选择器中的通配符使用介绍
Mar 20 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
Jan 09 Javascript
jQuery拖动布局其结果保存到数据库
Oct 09 Javascript
JS模拟Dialog弹出浮动框效果代码
Oct 16 Javascript
JavaScript暂停和继续定时器的实现方法
Jul 18 Javascript
jQuery插入节点和移动节点用法示例(insertAfter、insertBefore方法)
Sep 08 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
Jun 28 Javascript
基于node.js制作简单爬虫教程
Jun 29 Javascript
js编写简单的聊天室功能
Aug 17 Javascript
vue图片上传本地预览组件使用详解
Feb 20 Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
Mar 12 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删除文件夹及其文件夹下所有文件的函数代码
2013/01/23 PHP
PHP判断表单复选框选中状态完整例子
2014/06/24 PHP
php学习笔记之面向对象
2014/11/08 PHP
thinkphp使用literal防止模板标签被解析的方法
2014/11/22 PHP
php里array_work用法实例分析
2015/07/13 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
Ucren Virtual Desktop V2.0
2006/11/07 Javascript
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
2011/06/27 Javascript
Prototype的Class.create函数解析
2011/09/22 Javascript
将数字转换成大写的人民币表达式的js函数
2014/09/21 Javascript
jQuery formValidator表单验证
2016/01/07 Javascript
node使用UEditor富文本编辑器的方法实例
2017/07/11 Javascript
JavaScript 数组去重并统计重复元素出现的次数实例
2017/12/14 Javascript
nodeJs实现基于连接池连接mysql的方法示例
2018/02/10 NodeJs
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
浅谈Vue.js路由管理器 Vue Router
2018/08/16 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
js重写alert事件(避免alert弹框标题出现网址)
2020/12/04 Javascript
[02:02:38]VG vs Mineski Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
python脚本实现分析dns日志并对受访域名排行
2014/09/18 Python
python实现小球弹跳效果
2019/05/10 Python
Python+opencv+pyaudio实现带声音屏幕录制
2019/12/23 Python
pycharm工具连接mysql数据库失败问题
2020/04/01 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
突破canvas语法限制 让他支持链式语法
2012/12/24 HTML / CSS
一款html5 canvas实现的图片玻璃碎片特效
2014/09/11 HTML / CSS
加拿大时尚少女服装品牌:Garage
2016/10/10 全球购物
BannerBuzz加拿大:在线定制横幅印刷、广告和标志
2020/03/10 全球购物
对公司合理化的建议书
2014/03/12 职场文书
优秀共产党员先进事迹材料
2014/05/06 职场文书
精神文明建设标语
2014/06/16 职场文书
心理学专业求职信
2014/06/16 职场文书
企业安全生产责任书范本
2014/07/28 职场文书
2015年团支部工作总结
2015/04/03 职场文书
惊天动地观后感
2015/06/10 职场文书
win10清理dns缓存
2022/04/19 数码科技