欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue中input獲取光標(biāo)位置并追加內(nèi)容

 更新時(shí)間:2023年07月27日 10:49:24   作者:JuS巨山超力霸  
這篇文章主要給大家介紹了關(guān)于vue中input獲取光標(biāo)位置并追加內(nèi)容的相關(guān)資料,vue通過當(dāng)前的光標(biāo)來進(jìn)行插值,從而需要去獲取光標(biāo)所在的位置,需要的朋友可以參考下

項(xiàng)目中需要實(shí)現(xiàn)在輸入框內(nèi)的任意位置,追加內(nèi)容,這里通過input的selectionStart屬性還有setSelectionRange方法來實(shí)現(xiàn)。

首先來看selectionStart屬性,用于獲取文本框選區(qū)的開始位置,selectionEnd用于獲取文本框選區(qū)結(jié)束的位置,舉個(gè)栗子:

在該功能中,我們不是選擇文字,主要是需要獲取光標(biāo)的位置,不選中文字時(shí)selectionStart和selectionEnd屬性的值是一樣的。

再看setSelectionRange方法,它也是作用在input元素上的,可以通過設(shè)置起始和終止位置,來選中一段文本中的一部分,inputElement.setSelectionRange(selectionStart, selectionEnd, [optional] selectionDirection),還可以選擇方向。當(dāng)起始位置和終止位置一樣時(shí),就相當(dāng)于是改變輸入框中光標(biāo)的位置了。

看一下具體實(shí)現(xiàn):

代碼如下:

async insertContent(val){
   let dom = this.$refs.textareaI.$refs.textarea;
   // console.dir(dom);
   let index  = dom.selectionStart;
   let contont = dom.value;
   this.textarea = contont.substring(0,index) + val + contont.substring(index,contont.length)
   await this.$nextTick();
    dom.focus();
    dom.setSelectionRange(index + val.length,index + val.length)
},

需要注意幾點(diǎn):一定要等到dom更新完成后再去改變光標(biāo)的位置;

再講一個(gè)小tips:

不論是vue中ref獲取的元素節(jié)點(diǎn),或者通過原生獲取的節(jié)點(diǎn),當(dāng)我們想要查看元素節(jié)點(diǎn)的屬性時(shí),可以通過這三個(gè)方法查看:

  1. 包數(shù)組:console.log([dom])
  2. 包對(duì)象:console.log({dom})
  3. 使用console.dir打印,可以打印出該對(duì)象的所有屬性和屬性值。

總結(jié)

到此這篇關(guān)于vue中input獲取光標(biāo)位置并追加內(nèi)容的文章就介紹到這了,更多相關(guān)vue input獲取光標(biāo)位置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論