Vue 按键修饰符处理事件的方法


Posted in Javascript onMay 04, 2018

按键修饰符

在 PC 端开发时, 我们常常会遇到类似的需求, 比如用户按下 enter 键时提交表单, 没有用按键修饰符时, 我们可能会去监听键盘事件, 根据 keyCode 的值加以判断

Vue 新增按键修饰符和系统修饰符来处理类似事件

/** 提交表单 */
<template>
  <div class="demo">
    电话号码:
    <input type="text" placeholder="请输入电话号码" v-model="phone" @keyup.13="handleSubmit" />
  </div>
</template>

<script>
export default {
  data () {
    return {
      phone: '' // 电话号码
    }
  },
  methods: {

    // TODO 提交电话号码
    handleSubmit () { alert(this.phone) }
  }
}
</script>

要记住所有的 keyCode 值比较困难, 所以 Vue 为常用的按键提供了别名

<input type="text" placeholder="请输入电话号码" v-model="phone" @keyup.enter="handleSubmit" />

常见按钮别名

enter tab delete esc space up down left right

如果这些别名不能满足需要的话, 可以通过全局 config.keyCodes 对象自定义按键修饰符别名

Vue.config.keyCodes.x = 88

你也可以将 keyboardEvent.key 暴露的按键名转换为 kebab-case 来作为修饰符, 以下两种修饰符都能触发 handleSubmit 事件

<input type="text" placeholder="请输入电话号码" v-model="phone" @keyup.right="handleSubmit" />
<input type="text" placeholder="请输入电话号码" v-model="phone" @keyup.arrow-right="handleSubmit" />

系统修饰键

有时候我们需要配合系统修饰键共同触发事件, 这里要注意的是, 单独按下系统修饰键是不会触发相应事件的

系统修饰键包含 ctrl alt shift meta 键, 对于不同的键盘, 这四个系统修饰键对应各有不同, 对于 mac 系统键盘, meta 键对应 command 键, 在 windows 系统键盘中对应 ⊞ 键

在下面的例子中, 当 control 和 v 键共同作用时, 才会触发 handleSubmit 事件

<input type="text" placeholder="请输入电话号码" v-model="phone" @keyup.ctrl.v="handleSubmit"/>

有时候我们需要精确匹配到按键组合时才触发相应事件, 在下面的例子中, 当且仅当 control 和 v 键共同作用时, 才会触发 handleSubmit 事件

<input type="text" placeholder="请输入电话号码" v-model="phone" @keyup.ctrl.v.exact="handleSubmit"/>

总结

以上所述是小编给大家介绍的Vue 按键修饰符处理事件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Expandable &quot;Detail&quot; Table Rows
Aug 29 Javascript
优化Node.js Web应用运行速度的10个技巧
Sep 03 Javascript
jQuery旋转木马式幻灯片轮播特效
Dec 04 Javascript
jQuery实现textarea自动增长宽高的方法
Dec 18 Javascript
js提交form表单,并传递参数的实现方法
May 25 Javascript
js实现可控制左右方向的无缝滚动效果
May 29 Javascript
AngularJS实现星星等级评分功能
Sep 24 Javascript
AngularJS模仿Form表单提交的实现代码
Dec 08 Javascript
JS控件bootstrap suggest plugin使用方法详解
Mar 25 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
Sep 27 Javascript
JS实现简单的星期格式转换功能示例
Jul 23 Javascript
JavaScript JSON数据处理全集(小结)
Aug 15 Javascript
vue mint-ui tabbar变组件使用
May 04 #Javascript
Vue结合Video.js播放m3u8视频流的方法示例
May 04 #Javascript
原生javascript AJAX 三级联动的实现代码
May 04 #Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
May 04 #Javascript
vue裁切预览组件功能的实现步骤
May 04 #Javascript
详解vue组件基础
May 04 #Javascript
在 Vue 项目中引入 tinymce 富文本编辑器的完整代码
May 04 #Javascript
You might like
PHP中的extract的作用分析
2008/04/09 PHP
PHP swfupload图片上传的实例代码
2013/09/30 PHP
CI(CodeIgniter)框架实现图片上传的方法
2017/03/24 PHP
yii2实现Ueditor百度编辑器的示例代码
2018/11/02 PHP
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
jquery.Ajax()方法调用Asp.Net后台的方法解析
2014/02/13 Javascript
当滚动条滚动到页面底部自动加载增加内容的js代码
2014/05/13 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
2015/01/28 Javascript
jQuery实现简洁的导航菜单效果
2015/11/23 Javascript
Node.js的基本知识简单汇总
2016/09/19 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
通俗解释JavaScript正则表达式快速记忆
2017/08/23 Javascript
JavaScript实现一个简易的计算器实例代码
2018/05/10 Javascript
angularJs在多个控制器中共享服务数据的方法
2018/09/30 Javascript
JavaScript eval()函数定义及使用方法详解
2020/07/07 Javascript
[38:23]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第一场
2014/05/24 DOTA
[01:27]DOTA2电竞之夜 今夜共饮庆功酒
2014/08/02 DOTA
[48:46]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第二场 11.19
2020/11/19 DOTA
详解Python进程间通信之命名管道
2017/08/28 Python
Python代码实现KNN算法
2017/12/20 Python
python实现决策树
2017/12/21 Python
Python3 修改默认环境的方法
2019/02/16 Python
Django Aggregation聚合使用方法解析
2019/08/01 Python
softmax及python实现过程解析
2019/09/30 Python
解决tensorflow由于未初始化变量而导致的错误问题
2020/01/06 Python
在pycharm中关掉ipython console/PyDev操作
2020/06/09 Python
CSS3中的opacity属性使用教程
2015/08/19 HTML / CSS
高中生家长会演讲稿
2014/01/14 职场文书
2014年教师个人工作总结
2014/11/10 职场文书
摘录式读书笔记
2015/07/01 职场文书
学校隐患排查制度
2015/08/05 职场文书
担保公司2015年终工作总结
2015/10/14 职场文书
微信小程序scroll-view不能左右滑动问题的解决方法
2021/07/09 Javascript