這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)怎么在vue中實現(xiàn)一個回車鍵登錄功能,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
created() { let that = this; document.onkeypress = function(e) { var keycode = document.all ? event.keyCode : e.which; if (keycode == 13) { that.login();// 登錄方法名 return false; } }; }
以上的代碼,在這幾天測試發(fā)現(xiàn)有一個問題,在登錄進系統(tǒng)之后,從首頁切換到其他界面,點擊回車,會導(dǎo)致界面調(diào)整到首頁!
要實現(xiàn):
只在Login界面點擊回車才執(zhí)行onkeypress方法,其他的點回車均不觸發(fā)(還不明白為什么在其他界面回車會執(zhí)行Login界面的created-_-|| )
思路:
在Login.vue最外層綁定id,再綁定鍵盤事件。
$(“#loginDiv”).bind("keypress",toLogin);
測試發(fā)現(xiàn)監(jiān)聽不到按鍵事件,因為div元素沒法獲取焦點,但只要為div元素加上tabIndex屬性就能獲取焦點
以上方法雖然也能觸發(fā)keypress,但還有點瑕疵~ 就是打開登錄頁時,需要鼠標點一下界面,才能觸發(fā)keypress?。?!
又一思路:界面中需要有一個聚焦,在回車時才好執(zhí)行keypress。故在界面中加input文本框,讓不管從哪里打開或跳到Login.vue都聚焦文本框
所以自定義指令:
directives: { focus: { // 指令的定義 inserted: function (el) { el.focus() } } },
自定義指令及inserted用法截圖自vue官網(wǎng)文檔如下:
知識點補充:
vue項目里登錄界面實現(xiàn)回車登錄
方法一:
在vue的created鉤子函數(shù)中寫
//登錄添加鍵盤事件,注意,不能直接在焦點事件上添加回車 // let that = this; // document.onkeydown = function (e) { // e = window.event || e; // if(that.$route.path=='/login'&&(e.code=='Enter'||e.code=='Num Enter')){//驗證在登錄界面和按得鍵是回車鍵enter // that.handleSubmit2('ruleForm2');//登錄函數(shù) (handleSubmit2('ruleForm2')-登錄按鈕的點擊事件) // } // }
注意:只對主鍵盤的Enter管用
方法二:
在vue的created鉤子函數(shù)中寫
var _self = this; document.onkeydown = function(e){ var key = window.event.keyCode; if(key == 13 || key == 100){ _self.handleSubmit2('ruleForm2'); } }
上述就是小編為大家分享的怎么在vue中實現(xiàn)一個回車鍵登錄功能了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。