element el-input 自動獲取焦點和IE下光標位置解決方法


在實際開發中我們經常會碰到這樣的場景,就是有input的地方都喜歡切換過去input自動獲取焦點。

如果這個問題是在input中,很容易就實現了,但是element里面的el-input看源碼,其實不只是一個input,所以aotofocus 這個屬性便不生效了。

解決方法網上也有不同的例子,比如vue的自定義指令,當然包括全局和組件的,但是我建議一種比較簡單的寫法:

this.$nextTick(() => {
this.$refs.input.$el.querySelector('input').focus()
})

因為有的時候input中是有默認值的,自動獲取焦點谷歌和火狐、360瀏覽器光標都正常。但是在IE上光標就跑到默認值的最左邊去了,、
查了下好像IE瀏覽器下input的光標默認就是在最左邊的,很顯然這不符合我們的需求,每次輸入的時候用戶還要多點一次。

我們想要的肯定是

我覺得比較嚴謹的做法就是先判斷瀏覽器,判斷IE瀏覽器的方法很多,這里就不寫多種了,有興趣自己上網查
// el-input 獲得焦點事件  @focus="getCursor"

getCursor (event) {
 // 判斷是不是IE瀏覽器
if (window.ActiveXObject || 'ActiveXObject' in window) {
    // 把光標移動input默認值的最后
event.target.setSelectionRange(this.position.length, this.position.length)
}
}
 


免責聲明!

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



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