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 相关文章推荐
Exitjs获取DataView中图片文件名
Nov 26 Javascript
ExtJs GridPanel简单的增删改实现代码
Aug 26 Javascript
javascript框架设计读书笔记之模块加载系统
Dec 02 Javascript
JavaScript模拟可展开、拖动与关闭的聊天窗口实例
May 12 Javascript
JS实现窗口加载时模拟鼠标移动的方法
Jun 03 Javascript
jQuery position() 函数详解以及jQuery中position函数的应用
Dec 14 Javascript
JS事件添加和移出的兼容写法示例
Jun 20 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
May 10 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
Oct 15 Javascript
vue进行图片的预加载watch用法实例讲解
Feb 07 Javascript
解决layui中的form表单与button的点击事件冲突问题
Aug 15 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
Sep 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多层数组与对象的转换实例代码
2013/08/05 PHP
PHP开发注意事项总结
2015/02/04 PHP
PHP检测一个数组有没有定义的方法步骤
2019/07/20 PHP
js实现屏蔽默认快捷键调用自定义事件示例
2013/06/18 Javascript
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
JS实现的生成随机数的4个函数分享
2015/02/11 Javascript
对Js OOP编程 创建对象的一些全面理解
2016/07/26 Javascript
ES6与CommonJS中的模块处理的区别
2018/06/13 Javascript
JavaScript设计模式之责任链模式实例分析
2019/01/16 Javascript
Javascript 对象(object)合并操作实例分析
2019/07/30 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
2020/05/14 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
2020/07/23 Javascript
[00:35]DOTA2上海特级锦标赛 EG战队宣传片
2016/03/04 DOTA
python实现simhash算法实例
2014/04/25 Python
Centos5.x下升级python到python2.7版本教程
2015/02/14 Python
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
2019/10/12 Python
python中_del_还原数据的方法
2020/12/09 Python
中国一家综合的外贸B2C电子商务网站:DealeXtreme(DX)
2020/03/10 全球购物
公司培训欢迎词
2014/01/10 职场文书
社区端午节活动方案
2014/01/28 职场文书
户外拓展活动方案
2014/02/11 职场文书
亲属关系公证书
2014/04/08 职场文书
人口与计划生育目标管理责任书
2014/07/29 职场文书
公安机关正风肃纪剖析材料
2014/10/10 职场文书
工程款申请报告
2015/05/15 职场文书
2015秋学期开学寄语
2015/05/28 职场文书
毕业酒会致辞
2015/07/29 职场文书
欢送领导祝酒词
2015/08/12 职场文书
2016年师德师风学习心得体会
2016/01/12 职场文书
大学生心理健康教育心得体会
2016/01/12 职场文书
JavaScript实现简单图片切换
2021/04/29 Javascript
SpringAop日志找不到方法的处理
2021/06/21 Java/Android
java中用float时,数字后面加f,这样是为什么你知道吗
2021/09/04 Java/Android
Java中API的使用方法详情
2022/04/06 Java/Android