vue中@keyup.enter失效問題及解決
@keyup.enter失效問題
情況一(我遇到的情況)
@keyup.enter外部存在form表單,并且form表單里只有一個input
原因:當form表單內只有一個input按回車鍵會自動提交表單
解決辦法:多增加一個不可見的input即可
情況二(百度時了解到的)
在同一個標簽同時添加@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) ? // 可以打印出事件的內容 ? 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事件,導致 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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Vue3中Provide?/?Inject的實現(xiàn)原理分享
provide和inject主要為高階插件/組件庫提供用例,這篇文章主要給大家介紹了關于Vue3中Provide?/?Inject的實現(xiàn)原理,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-02-02VUE開發(fā)分布式醫(yī)療掛號系統(tǒng)的醫(yī)院設置頁面步驟
這篇文章主要為大家介紹了VUE開發(fā)分布式醫(yī)療掛號系統(tǒng)的醫(yī)院設置頁面步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-04-04