快速解決element的autofocus失效問(wèn)題
原因:
autofocus是vue中input的原生屬性,element也支持這種方法,
但是element中的el-input組件外面還有其他組件, 導(dǎo)致autofocus失效, 只能手動(dòng)調(diào)用focus方法來(lái)聚集。
方法:
綁定ref
<el-input ref="myNameId" v-model="form.name" />
this.$refs.myNameId.focus();
動(dòng)態(tài)綁定ref
<el-input :ref=" 'input'+ form.id " v-model="form.name" /> this.$nextTick(()=>{ let id = 'input'+this.form.id; this.$refs[id].focus(); })
補(bǔ)充知識(shí):element input輸入框自動(dòng)獲取焦點(diǎn)
最近項(xiàng)目中在做表單的時(shí)候,需要自動(dòng)滾動(dòng)到評(píng)論框,并且讓評(píng)論框自動(dòng)聚焦,這就需要手動(dòng)觸發(fā)輸入框的 focus 狀態(tài)。
但是,element并不支持autofocus屬性,那就只能通過(guò)原生的js效果獲取聚焦效果了
document.getElementById("input").focus();
或者利用vue的ref屬性也可以實(shí)現(xiàn)聚焦效果:
原理其實(shí)很簡(jiǎn)單,Element 已經(jīng)提供了 focus 方法,但是文檔并沒(méi)有寫(xiě)明如何去調(diào)用,下面是在el-input標(biāo)簽上加入ref屬性,然后在需要的地方直接調(diào)用方法就可以了
<el-input v-model="input" placeholder="請(qǐng)輸入內(nèi)容" ref="input"></el-input>
this.$nextTick(() => { this.$refs.input.focus() })
注意:一個(gè)頁(yè)面只能有一個(gè)聚焦效果
last , vue也支持自定義指令
當(dāng)頁(yè)面加載時(shí),該元素將獲得焦點(diǎn) (注意:autofocus 在移動(dòng)版 Safari 上不工作)。事實(shí)上,只要你在打開(kāi)這個(gè)頁(yè)面后還沒(méi)點(diǎn)擊過(guò)任何內(nèi)容,這個(gè)輸入框就應(yīng)當(dāng)還是處于聚焦?fàn)顟B(tài)。現(xiàn)在讓我們用指令來(lái)實(shí)現(xiàn)這個(gè)功能:
// 注冊(cè)一個(gè)全局自定義指令 `v-focus` Vue.directive('focus', { // 當(dāng)被綁定的元素插入到 DOM 中時(shí)…… inserted: function (el) { // 聚焦元素 el.focus() // element-ui el.children[0].focus() // 元素有變化,如show或者父元素變化可以加延時(shí)或判斷 setTimeout(_ => { el.children[0].focus() }) } })
以上這篇快速解決element的autofocus失效問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vant中Popover氣泡彈出框位置錯(cuò)亂問(wèn)題解決
這篇文章主要為大家介紹了Vant中Popover氣泡彈出框位置錯(cuò)亂問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06Vue.js實(shí)現(xiàn)簡(jiǎn)單動(dòng)態(tài)數(shù)據(jù)處理
本篇文章主要介紹了Vue.js實(shí)現(xiàn)簡(jiǎn)單動(dòng)態(tài)數(shù)據(jù)處理,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02vue-cli2,vue-cli3,vite?生產(chǎn)環(huán)境去掉console.log
console.log一般都是在開(kāi)發(fā)環(huán)境下使用的,在生產(chǎn)環(huán)境下需要去除?,本文主要介紹了vue-cli2,vue-cli3,vite?生產(chǎn)環(huán)境去掉console.log,具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05vue輪播圖插件vue-awesome-swiper的使用代碼實(shí)例
本篇文章主要介紹了vue輪播圖插件vue-awesome-swiper的使用代碼實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07Vue3在history模式下如何通過(guò)vite打包部署白屏
這篇文章主要介紹了Vue3在history模式下如何通過(guò)vite打包部署白屏問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07Vue3 style CSS 變量注入的實(shí)現(xiàn)
本文主要介紹了Vue3 style CSS 變量注入的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07