Vue-键盘事件

键盘事件

回车事件

回车输出Input控件输入的内容

  • 代码
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>键盘事件</title>
        <!--  引入Vue  -->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <div id="root">
            <h1>事件修饰符</h1>
            <h2> enter 回车事件</h2>
            <div>
                <input type="text" placeholder="按下回车提示输入的内容" @keyup="showContent">
            </div>
        </div>
        
    </body>
    <script type="text/javascript">
        Vue.config.productionTip = false; // 阻止vue在启动是生成生产提示      
        new Vue({
            el:'#root', 
            data:{ 
                name:"菜逼"
            },
            methods: {
                showContent(e){
                    console.log(e.keyCode)
                    // 回车键的码 是13
                    if(e.keyCode === 13){
                        console.log(e.target.value)
                    }
                }
            },
        });
    </script>
</html>

  • 效果

input控件中输入内容,按下回车键控制台输出input内容

在这里插入图片描述

  • 简写

@keyup="showContent" => @keyup.enter="showContent"

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>键盘事件</title>
        <!--  引入Vue  -->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <div id="root">
            <h1>键盘事件</h1>
            <h2> enter 回车事件</h2>
            <div>
                <input type="text" placeholder="按下回车提示输入的内容" @keyup.enter="showContent">
            </div>
        </div>
        
    </body>
    <script type="text/javascript">
        Vue.config.productionTip = false; // 阻止vue在启动是生成生产提示      
        new Vue({
            el:'#root', 
            data:{ 
                name:"菜逼"
            },
            methods: {
                showContent(e){
                    console.log(e.keyCode)
                    // 回车键的码 是13
                    // if(e.keyCode === 13){
                        console.log(e.target.value)
                    // }
                }
            },
        });
    </script>
</html>

常见按键别名

中文名称别名
回车enter
删除/退格delete
退出esc
空格space
换行tab(特殊,必须配合keydown去使用,不适合用keyup)
up
down
left
down

未提供别名的按键,可以使用按键原始的key值去绑定,但注意要转为kebab-case(短横线命名)。

  • CapsLock 短横线命名:.caps-lock
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>键盘事件</title>
        <!--  引入Vue  -->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <div id="root">
            <h1>键盘事件</h1>
            <h2> enter 回车事件</h2>
            <div>
                <input type="text" placeholder="按下回车提示输入的内容" @keyup.enter="showContent">

                <input type="text" placeholder="按下大写提示输入" @keyup.caps-lock="showContent">
            </div>
        </div>
        
    </body>
    <script type="text/javascript">
        Vue.config.productionTip = false; // 阻止vue在启动是生成生产提示      
        new Vue({
            el:'#root', 
            data:{ 
                name:"菜逼"
            },
            methods: {
                showContent(e){
                    console.log(e.keyCode)
                    // 回车键的码 是13
                    // if(e.keyCode === 13){
                        console.log(e.target.value)
                    // }
                }
            },
        });
    </script>
</html>

  • 效果
    在这里插入图片描述

系统修饰键

  • ctrl、
  • alt
  • shift
  • meta(win键)
  1. 配合keyup使用:按下修饰键的同时,再按下其他键,随后释放其他键,事件才被触发。
  2. 配合keydown使用:正常触发事件。

ctl + a

  • 代码
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>键盘事件</title>
        <!--  引入Vue  -->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <div id="root">
            <h1>键盘事件</h1>
            <h2> enter 回车事件</h2>
            <div>
                <label>回车</label>
                <input type="text" placeholder="按下回车提示输入的内容" @keyup.enter="showContent"><br>
                <label>大写</label>
                <input type="text" placeholder="按下大写提示输入" @keyup.caps-lock="showContent"><br>
                <label>ctrl+a</label>
                <input type="text" placeholder="按下ctrl+a提示输入" @keyup.ctrl.a="showContent"><br>
            </div>
        </div>
        
    </body>
    <script type="text/javascript">
        Vue.config.productionTip = false; // 阻止vue在启动是生成生产提示      
        new Vue({
            el:'#root', 
            data:{ 
                name:"菜逼"
            },
            methods: {
                showContent(e){
                    console.log(e.keyCode)
                    // 回车键的码 是13
                    // if(e.keyCode === 13){
                        console.log(e.target.value)
                    // }
                }
            },
        });
    </script>
</html>

  • 效果
    在这里插入图片描述

ctrl+alt+v

  • 代码
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>键盘事件</title>
        <!--  引入Vue  -->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <div id="root">
            <h1>键盘事件</h1>
            <h2> enter 回车事件</h2>
            <div>
                <label>回车</label>
                <input type="text" placeholder="按下回车提示输入的内容" @keyup.enter="showContent"><br>
                <label>大写</label>
                <input type="text" placeholder="按下大写提示输入" @keyup.caps-lock="showContent"><br>
                <label>ctrl+a</label>
                <input type="text" placeholder="按下ctrl+a提示输入" @keyup.ctrl.a="showContent"><br>
                <label>ctrl+alt+v</label>
                <input type="text" placeholder="按下ctrl+alt+v提示输入" @keyup="showInfo"><br>
            </div>
        </div>
        
    </body>
    <script type="text/javascript">
        Vue.config.productionTip = false; // 阻止vue在启动是生成生产提示      
        new Vue({
            el:'#root', 
            data:{ 
                name:"菜逼"
            },
            methods: {
                showContent(e){
                    console.log(e.keyCode)
                    // 回车键的码 是13
                    // if(e.keyCode === 13){
                        console.log(e.target.value)
                    // }
                },
                showInfo(e){
                    if (e.ctrlKey && e.altKey && e.key === 'v') {
                        // 处理 ctrl+alt+V
                        e.preventDefault(); // 阻止默认行为,例如粘贴操作
                        console.log(e.target.value);
                    }
                }
            },
        });
    </script>
</html>

  • 效果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜逼の世界

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值