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 相关文章推荐
利用js跨页面保存变量做菜单的方法
Jan 17 Javascript
通过jQuery源码学习javascript(二)
Dec 27 Javascript
Javascript控制input输入时间格式的方法
Jan 28 Javascript
jQuery焦点图插件SaySlide
Dec 21 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
Aug 29 Javascript
jQuery实现的瀑布流加载效果示例
Sep 13 Javascript
JavaScrpt判断一个数是否是质数的实例代码
Jun 11 Javascript
vue-resource + json-server模拟数据的方法
Nov 02 Javascript
vue单页应用加百度统计代码(亲测有效)
Jan 31 Javascript
分析javascript原型及原型链
Mar 18 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
Sep 25 Javascript
javascript this指向相关问题及改变方法
Nov 19 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把空格、换行符、中文逗号等替换成英文逗号的正则表达式
2014/05/04 PHP
php递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
手把手教你自己写一个js表单验证框架的方法
2010/09/14 Javascript
基于json的jquery地区联动效果代码
2011/07/06 Javascript
jQuery EasyUI API 中文文档 - MenuButton菜单按钮使用介绍
2011/10/06 Javascript
javascript 基础篇4 window对象,DOM
2012/03/14 Javascript
js使浏览器窗口最大化实现代码(适用于IE)
2013/08/07 Javascript
js返回上一页并刷新的多种实现方法
2014/02/26 Javascript
jQuery中Ajax的get、post等方法详解
2015/01/20 Javascript
JS交换变量的方法
2015/01/21 Javascript
js实现对table动态添加、删除和更新的方法
2015/02/10 Javascript
Jquery常用的方法汇总
2015/09/01 Javascript
jquery实现下拉框多选方法介绍
2017/01/03 Javascript
原生JS实现隐藏显示图片 JS实现点击切换图片效果
2021/01/27 Javascript
JS实现电商放大镜效果
2017/08/24 Javascript
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
Vue 中使用富文本编译器wangEditor3的方法
2019/09/26 Javascript
JavaScript本地储存:localStorage、sessionStorage、cookie的使用
2020/10/13 Javascript
[10:34]DOTA2上海特级锦标赛全纪录
2016/03/25 DOTA
Python实现的二维码生成小软件
2014/07/11 Python
python使用wxpython开发简单记事本的方法
2015/05/20 Python
python实现DES加密解密方法实例详解
2015/06/30 Python
Python实现将SQLite中的数据直接输出为CVS的方法示例
2017/07/13 Python
python 处理string到hex脚本的方法
2018/10/26 Python
为什么称python为胶水语言
2020/06/16 Python
豪华复古化妆:Besame Cosmetics
2019/09/06 全球购物
简历自我评价怎么写好呢?
2014/01/04 职场文书
孝老爱亲模范事迹材料
2014/05/25 职场文书
2014年数学教师工作总结
2014/12/03 职场文书
语文复习计划
2015/01/19 职场文书
《彼得与狼》教学反思
2016/02/20 职场文书
2019最新公司租房合同(例文)
2019/07/18 职场文书
golang DNS服务器的简单实现操作
2021/04/30 Golang
python中subplot大小的设置步骤
2021/06/28 Python
Java设计模式之享元模式示例详解
2022/03/03 Java/Android
详解OpenCV曝光融合
2022/04/29 Python