如果是原生的input,使用 @keyup.enter就可以,若是使用了element-ui,則要加上native限制符,因為element-ui把input進(jìn)行了封裝,原事件就不起作用了,代碼如下:
<input v-model="form.name" placeholder="昵稱" @keyup.enter="submit"> <el-input v-model="form.name" placeholder="昵稱" @keyup.enter.native="submit"></el-input>
現(xiàn)在發(fā)現(xiàn)這個鍵盤事件好像對input框支持比較好,其他的元素多少會有點問題,或者直接無效,究其原因是其他的元素沒有獲取焦點或者沒有鍵盤事件。
我現(xiàn)在的解決方式,
如果是沒有鍵盤事件使用css把input框絕對定位到需要綁定鍵盤事件的元素之上并且把input框設(shè)置為透明,把該input框與原來要綁定鍵盤事件的元素進(jìn)行綁定,達(dá)到效果;
test.vue
<div class="container"> <input class="item opa" @keyup="deleteDiv"> <div class="item">div內(nèi)容</div> <span click="DeleteDiv">X</span> </div>
css:
div.container{ position:relative; } .item{ position:absolute; top:0; left:0; width:100px; height:100px; border:1px solid #ccc; } .opa{ opacity:0; z-index:5; } span{ position:absolute; top:5px; right:5px; z-index:10; }
js:
methods:{ deleteDiv(){ alert("delete"); } }
如果是沒有獲取焦點,則可以寫一個自定義指令自動獲取焦點,
自動獲取焦點自定義指令見我另一篇文章 點擊進(jìn)入
拓展知識:vuejs 2.0 鍵盤事件詳解
如下所示:
<!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8"> <script src="vue.js"></script> <script type="text/javascript"> window.onload = function(){ var vm = new Vue({ el:'#box', methods:{ show:function(ev){ if(ev.keyCode == 13){ alert('你按回車鍵了'); } }, } }); } </script> </head> <body> <div id="box"> <input type="text" placeholder="請輸入" @keyup="show($event)"> <input type="text" placeholder="請輸入" @keyup.13="show($event)"> </div> </body> </html>
當(dāng)按下鍵盤的時候,執(zhí)行show方法,然后再去執(zhí)行相應(yīng)的業(yè)務(wù)。
兩個input的效果都是一樣的 如果安13 也就是按鍵 enter 才會執(zhí)行彈窗?。?/p>
@keyup.13 回車
@keyup.enter 回車
@keyup.left 左鍵
@keyup.right 右鍵
@keyup.up 上鍵
@keyup.down 下鍵
@keyup.delete 刪除鍵
以上這篇對vue 鍵盤回車事件的實例講解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com