vue中@keyup.enter失效問題及解決
@keyup.enter失效問題
情況一(我遇到的情況)
@keyup.enter外部存在form表單,并且form表單里只有一個input
原因:當(dāng)form表單內(nèi)只有一個input按回車鍵會自動提交表單
解決辦法:多增加一個不可見的input即可
情況二(百度時了解到的)
在同一個標(biāo)簽同時添加@click和@keyup.enter
解決辦法:分開放,比如@keyup.enter通常放在input里面,@click放在button里面
@keyup.enter和@blur觸發(fā)兩次和回車無效
1.vue 對 input 綁定兩個事件:回車或失焦
<input ? ?v-else ? ?ref="input" ? ?v-model="inputValue" ? ?type="text" ? ?:placeholder="placeholder" ? ?@keyup="save" ? ?@blur="save" ?/>
save(e) { ? console.log(e) ? // 可以打印出事件的內(nèi)容 ? if (e.keyCode === 13 || e.type === 'blur') { ? ? this.pShow = !this.pShow ? ? this.$emit('update', this.$attrs['step-index'], this.inputValue) ? } }
要求 input 框失焦或者鍵盤按下 Enter 鍵時觸發(fā) save 事件,但是實際上在按下 Enter 鍵后,會觸發(fā)兩次save 事件
原因:鍵盤按下 Enter 鍵執(zhí)行 save 方法同時會自動觸發(fā) blur事件,導(dǎo)致 save 被執(zhí)行了兩次
2.解決: 鍵盤按下 Enter 鍵執(zhí)行 blur
<input ? ?v-else ? ?ref="input" ? ?v-model="inputValue" ? ?type="text" ? ?:placeholder="placeholder" ? ?@keyup.enter.native="$event.target.blur" ? ?@blur="save" ?/>
2.問題:按下 Enter 并不能觸發(fā)事件
需要將 @keyup.enter.native="$event.target.blur" 改成 @keyup.enter="$event.target.blur" , 如果 input 是 el-input 可以用第一個方法
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue組件設(shè)計之多列表拖拽交換排序功能實現(xiàn)
這篇文章主要介紹了Vue組件設(shè)計之多列表拖拽交換排序,常見的場景有單列表拖拽排序,多列表拖拽交換排序,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05VUE跳轉(zhuǎn)外部鏈接與網(wǎng)頁的方法示例
這篇文章主要給大家介紹了關(guān)于VUE跳轉(zhuǎn)外部鏈接與網(wǎng)頁的方法,記錄一下在vue項目中如何實現(xiàn)跳轉(zhuǎn)到一個新頁面,需要的朋友可以參考下2023-06-06Vue3中Provide?/?Inject的實現(xiàn)原理分享
provide和inject主要為高階插件/組件庫提供用例,這篇文章主要給大家介紹了關(guān)于Vue3中Provide?/?Inject的實現(xiàn)原理,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-02-02VUE開發(fā)分布式醫(yī)療掛號系統(tǒng)的醫(yī)院設(shè)置頁面步驟
這篇文章主要為大家介紹了VUE開發(fā)分布式醫(yī)療掛號系統(tǒng)的醫(yī)院設(shè)置頁面步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-04-04