溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

對vue 鍵盤回車事件的實(shí)例講解

發(fā)布時(shí)間:2020-09-29 21:14:00 來源:腳本之家 閱讀:188 作者:lx_1024 欄目:web開發(fā)

如果是原生的input,使用 @keyup.enter就可以,若是使用了element-ui,則要加上native限制符,因?yàn)閑lement-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)這個(gè)鍵盤事件好像對input框支持比較好,其他的元素多少會有點(diǎn)問題,或者直接無效,究其原因是其他的元素沒有獲取焦點(diǎn)或者沒有鍵盤事件。

我現(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");
 }
}

如果是沒有獲取焦點(diǎn),則可以寫一個(gè)自定義指令自動獲取焦點(diǎn),

自動獲取焦點(diǎn)自定義指令見我另一篇文章 點(diǎn)擊進(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)按下鍵盤的時(shí)候,執(zhí)行show方法,然后再去執(zhí)行相應(yīng)的業(yè)務(wù)。

兩個(gè)input的效果都是一樣的 如果安13 也就是按鍵 enter 才會執(zhí)行彈窗??!

@keyup.13 回車

@keyup.enter 回車

@keyup.left 左鍵

@keyup.right 右鍵

@keyup.up 上鍵

@keyup.down 下鍵

@keyup.delete 刪除鍵

以上這篇對vue 鍵盤回車事件的實(shí)例講解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI