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 相关文章推荐
jQuery Tips 为AJAX回调函数传递额外参数的方法
Dec 28 Javascript
50款非常棒的 jQuery 插件分享
Mar 29 Javascript
JavaScript获取服务器端时间的方法
Nov 29 Javascript
Bootstrap基本样式学习笔记之表格(2)
Dec 07 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
Jul 10 jQuery
bmob js-sdk 在vue中的使用教程
Jan 21 Javascript
vue+webpack 打包文件 404 页面空白的解决方法
Feb 28 Javascript
vue.js学习笔记之v-bind和v-on解析
May 03 Javascript
详解vue-loader在项目中是如何配置的
Jun 04 Javascript
使用JavaScript中的lodash编写双色球效果
Jun 24 Javascript
微信小程序解析富文本过程详解
Jul 13 Javascript
jquery实现有过渡效果的tab切换
Jul 17 jQuery
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
重置版战役片段
2020/04/09 魔兽争霸
PHP设置一边执行一边输出结果的代码
2013/09/30 PHP
PHP数据库处理封装类实例
2016/12/24 PHP
php递归函数怎么用才有效
2018/02/24 PHP
原生php实现excel文件读写的方法分析
2018/04/25 PHP
Mozilla中显示textarea中选择的文字
2006/09/07 Javascript
ExtJS 2.2.1的grid控件在ie6中的显示问题
2009/05/04 Javascript
jQuery 白痴级入门教程
2009/11/11 Javascript
利用js的Node遍历找到repeater的一个字段实例介绍
2013/04/25 Javascript
JS 退出系统并跳转到登录界面的实现代码
2013/06/29 Javascript
JS实现时间格式化的方式汇总
2013/10/16 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
2016/04/01 Javascript
全面了解构造函数继承关键apply call
2016/07/26 Javascript
jQuery事件用法详解
2016/10/06 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
2016/12/08 Javascript
javascript实现非常简单的小数取整功能示例
2017/06/13 Javascript
JS 中LocalStorage和SessionStorage的使用
2017/08/17 Javascript
记一次react前端项目打包优化的方法
2020/03/30 Javascript
vue+Element-ui实现分页效果
2020/11/15 Javascript
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
set在python里的含义和用法
2019/06/24 Python
Python面向对象封装操作案例详解
2019/12/31 Python
Css3新特性应用之形状总结
2016/12/08 HTML / CSS
在阿联酋购买翻新手机和平板电脑:Teckzu
2021/02/12 全球购物
J2EE面试题集锦(附答案)
2013/08/16 面试题
夜大毕业自我鉴定
2013/10/11 职场文书
考博自荐信
2013/10/25 职场文书
期末总结的个人自我评价
2013/11/02 职场文书
技术总监个人的自我评价范文
2013/12/18 职场文书
一句话工作感言
2014/03/01 职场文书
2014爱耳日宣传教育活动总结
2014/03/09 职场文书
因公司原因离职的辞职信范文
2015/05/12 职场文书
公司员工手册范本
2015/05/14 职场文书
导师鉴定意见
2015/06/05 职场文书
四十年同学聚会致辞
2015/07/28 职场文书
大学入学感言
2015/08/01 职场文书