vue中input獲取光標(biāo)位置并追加內(nèi)容
項(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è)方法查看:
- 包數(shù)組:console.log([dom])
- 包對(duì)象:console.log({dom})
- 使用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)文章
vue實(shí)現(xiàn)導(dǎo)入json解析成動(dòng)態(tài)el-table樹表格
本文主要介紹了vue實(shí)現(xiàn)導(dǎo)入json解析成動(dòng)態(tài)el-table樹表格,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02Vue版本vue2.9.6升級(jí)到vue3.0的詳細(xì)步驟
vue版本升級(jí)相信大家應(yīng)該都遇到過,下面這篇文章主要給大家介紹了關(guān)于Vue版本vue2.9.6升級(jí)到vue3.0的詳細(xì)步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09在vue中配置不同的代理同時(shí)訪問不同的后臺(tái)操作
這篇文章主要介紹了在vue中配置不同的代理同時(shí)訪問不同的后臺(tái)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-09-09Vue頁面內(nèi)公共的多類型附件圖片上傳區(qū)域并適用折疊面板(示例代碼)
本文中實(shí)現(xiàn)的附件上傳區(qū)域支持超多類型附件分類型上傳,并且可根據(jù)特定條件具體展示某些類型的附件上傳,本文給大家分享Vue頁面內(nèi)公共的多類型附件圖片上傳區(qū)域并適用折疊面板的示例代碼,需要的朋友參考下吧2021-12-12關(guān)于vue中的時(shí)間格式轉(zhuǎn)化問題
這篇文章主要介紹了關(guān)于vue中的時(shí)間格式轉(zhuǎn)化問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07解決Electron?store的commit和dispatch不好用問題
這篇文章主要介紹了解決Electron?store的commit和dispatch不好用問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01Vue如何基于vue-i18n實(shí)現(xiàn)多國(guó)語言兼容
這篇文章主要介紹了Vue如何基于vue-i18n實(shí)現(xiàn)多國(guó)語言兼容,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07