element input輸入框自動獲取焦點的實現
阿新 • • 發佈:2021-10-07
最近專案中在做表單的時候,需要自動滾動到評論框,並且讓評論框自動聚焦,這就需要手動觸發輸入框的 focus 狀態。
但是,element並不支援autofocus屬性,那就只能通過原生的效果獲取聚焦效果了
document.getElementById("input").focus();
或者利用的ref屬性也可以實現聚焦效果:
原理其實很簡單,Element 已經提供了 focus 方法,但是文件並沒有寫明如何去呼叫,下面是在el-input標籤上加入ref屬性,然後在需要的地方直接呼叫方法就可以了
<el-input v-model="input" placeholder="請輸入內容" ref="input"></el-input>
this.$nextTick(() => {
this.$refs.input.focus()
kfAFW })
注意:一個頁面只能有一個聚焦效果
last,vue也支援自定義指令
當頁面載入時,該元素將獲得焦點 (注意:autofocus 在移動版 Safari 上不工作)。事實上,只要你在開啟這個頁面後還沒點選過任何內容,這個輸入框就應當還是處於聚焦狀態。現在讓我們用指令來實現這個功能:
// 註冊一個全域性自定義指令 `v-focus` Vue.directive('focus',{ // 當被繫結的元素插入到 DOM 中時…… inserted: function (el) { // 聚焦元素 el.focus() // element-ui el.chhttp://www.cppcns.comildren[0].focus() // 元素有變化,如show或者父元素變化可以加延時或判斷 setTimeout(_ => { el.children[0].focus() }) www.cppcns.com } })
參考:vue自定義指令 https://cn.vuejs.org/v2/guide/custom-directive.htmwww.cppcns.coml
到此這篇關於element input輸入框自動獲取焦點的實現的文章就介紹到這了,更多相關element input輸入框自動獲取焦點內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!