Vue自定义按键修饰符:第二天

在很多时候,我们想要在键盘上按一个指定的键,实现,新增,删除的目的,比如按一下回车键,就要实现新增数据的目的

这样我们就需要监听键盘事件。比如 keydown:按键按下,keyup:按键抬起,keypress:按键按下抬起

在Vue中允许为 v-on 在监听键盘事件时添加按键修饰符:

例如:keycode键盘码对照表

<!-- 只有在 `keyCode` 是 13 时调用 `vm实例中的submit方法`  这个13对应的键其实就是Enter回车键-->
<input v-on:keyup.13="submit">

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

<!-- 同上:这个enter就是键盘码13的别名 -->
<input v-on:keyup.enter="submit">

<!-- 缩写语法 -->
<input @keyup.enter="submit">

Vue默认为我们提供了如下键盘码的别名:

  • .enter(回车键)
  • .tab(Tab键)
  • .delete (捕获“删除”和“退格”键)
  • .esc(Esc按键)
  • .space(空格键)
  • .up(方向上键)
  • .down(方向下键)
  • .left(方向左键)
  • .right(方向右键)

 案例:

<html>
<head>
    <script src="~/Scripts/vue.js"></script>
</head>
<body>
    <div id="app">
        <!--当空格键按下并已经抬起的时候,调用add方法-->
        Esc键<input type="text" v-model="name" v-on:keyup.esc="add(name)" />
        <!--esc是键盘码27的别名,所有可以下面直接用键盘码27 效果样-->
        Esc键<input type="text" v-model="name" v-on:keyup.27="add(name)" />

        <!--当Del键按下的时候,调用Del方法-->
        Del键<input type="text" v-model="name" v-on:keydown.delete="Del(name)" />


        <!--当空格键按下并即将抬起的时候,调用add方法-->
        <!--keypress对中文输入法支持不好,可能无法响应中文输入;无法响应系统功能键(如delete,backspace等等)-->
        <!--经过测试:keypress无法绑定 Esc,方向键,Tab键,Del键-->
        <!--keypres对space空格键支持,因为空格键不属于系统功能键-->
        空格键<input type="text" v-model="name" v-on:keypress.space="add(name)" />
    </div>

    <script>
        var vm = new Vue({
            el: "#app",
            data: {
                name: '',
            },
            methods: {
                add: function (name) { alert(name) },
                Del: function (name) { alert(name) }
            },
            filters: {
            }
        })
    </script>
</body>
</html>

如果对Vue提供的键盘码别名觉得不够用,我们可以直接用按键事件来绑定键盘码keyCode。但是键盘码keyCode全是数字,很难记,也不直观。所以我们还可以给键盘码自定义的设定别名。

案例:例如,我为113这个键盘码起个别名,例如叫F2

<html>
<head>
    <script src="~/Scripts/vue.js"></script>
</head>
<body>
    <div id="app">
        <!--当F2键按下并抬起后,触发add事件方法-->
        自定义按键F2<input type="text" v-model="name" v-on:keyup.F2="add(name)" />
    </div>

    <script>
        //自定义全局键盘码别名(自己定义全局按键修饰符)
        Vue.config.keyCodes.F2 = 113;

        var vm = new Vue({
            el: "#app",
            data: {
                name: '',
            },
            methods: {
                add: function (name) { alert(name) },                
            },
            filters: {
            }
        })
    </script>
</body>
</html>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值