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 相关文章推荐
在textarea文本域中显示HTML代码的方法
Mar 06 Javascript
jquery选择器之内容过滤选择器详解
Jan 27 Javascript
使用原生js写的一个简单slider
Apr 29 Javascript
js的image onload事件使用遇到的问题
Jul 15 Javascript
jQuery网页版打砖块小游戏源码分享
Aug 20 Javascript
微信小程序 图片加载(本地,网路)实例详解
Mar 10 Javascript
Vue中&quot;This dependency was not found&quot;问题的解决方法
Jun 19 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
Aug 31 Javascript
vue 指令之气泡提示效果的实现代码
Oct 18 Javascript
jQuery实现为table表格动态添加或删除tr功能示例
Feb 19 jQuery
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
Oct 29 Javascript
基于jQuery拖拽事件的封装
Nov 29 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
BBS(php &amp; mysql)完整版(七)
2006/10/09 PHP
php 采集书并合成txt格式的实现代码
2009/03/01 PHP
PHP实现的多彩标签效果代码分享
2014/08/21 PHP
php实现微信企业转账功能
2018/10/02 PHP
在百度知道团队中快速审批新成员的js脚本
2014/02/02 Javascript
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
JavaScript知识点总结(十六)之Javascript闭包(Closure)代码详解
2016/05/31 Javascript
原生js二级联动效果
2017/06/20 Javascript
微信小程序对接七牛云存储的方法
2017/07/30 Javascript
解决vue js IOS H5focus无法自动弹出键盘的问题
2018/08/30 Javascript
微信小程序开发技巧汇总
2019/07/15 Javascript
浅谈layer的Icon样式以及一些常用的layer窗口使用方法
2019/09/11 Javascript
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
解决angular 使用原生拖拽页面卡顿及表单控件输入延迟问题
2020/04/21 Javascript
用Python实现一个简单的能够上传下载的HTTP服务器
2015/05/05 Python
python返回昨天日期的方法
2015/05/13 Python
python执行子进程实现进程间通信的方法
2015/06/02 Python
Java中重定向输出流实现用文件记录程序日志
2015/06/12 Python
深入解析Python编程中super关键字的用法
2016/06/24 Python
django基础之数据库操作方法(详解)
2017/05/24 Python
Python中enumerate()函数编写更Pythonic的循环
2018/03/06 Python
django 将model转换为字典的方法示例
2018/10/16 Python
Python实现截取PDF文件中的几页代码实例
2019/03/11 Python
Python实现字符型图片验证码识别完整过程详解
2019/05/10 Python
python编程进阶之类和对象用法实例分析
2020/02/21 Python
python编写softmax函数、交叉熵函数实例
2020/06/11 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
2020/08/24 Python
俄罗斯园林植物网上商店:Garshinka
2020/07/16 全球购物
百度软件工程师职位
2013/02/14 面试题
高中生学习总结的自我评价范文
2013/10/13 职场文书
国际贸易系求职信
2014/08/09 职场文书
如何写辞职信
2015/05/13 职场文书
酒店厨房管理制度
2015/08/06 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
如何优化vue打包文件过大
2022/04/13 Vue.js
Java Redisson多策略注解限流
2022/09/23 Java/Android