Vue Elementui 如何讓輸入框每次自動聚焦


在項目優化中碰到一個小問題,在每次提示框顯示的時候讓提示框中的輸入框聚焦。如下圖。一般情況下提示框是隱藏的。點擊了編輯才會彈出。

 

那么原生屬性autofocus 只在模板加載完成時起作用,也就是說只有第一次有用。

然后嘗試了ref,再this.$refs.el 也不能成功拿到該元素,因為餓了么組件封裝的<el-input>對應的是外面一個div,里面包了個input,在獲取元素的時候有問題的。

第二種嘗試,利用class 或者id 獲取元素,然后再手動聚焦 el.focus(),好像也不起作用。

然后查看文檔決定用,diretives 自定義指令,然而還是怎么弄都沒用。

最后又是網上各種查,才明白,inserted 只在元素插入的時候才有用,然而餓了么組件中提示框的隱藏顯示是v-show原來。

沒辦法最后只能把<el-input> 替換掉,換成原生標簽 input ,樣式上直接class復制一下之前的樣式吧。 v-if 與提示框的 v-show的值綁定在一起,這樣就輕松實現啦!

總結反思,對vue的自定義指令原理不熟悉 ,對餓了么組件的封裝原理也不是十分明白。

總覺得還有更簡單的方法,希望大佬們多指教!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM