vue3,光标所在位置插入字符,没有选中光标的话默认在输入框最前面添加字符
时间: 2023-02-14 14:28:03 浏览: 112
编辑框光标位置插入文本
3星 · 编辑精心推荐
Vue 3 的话,你可以使用 refs 来获取 DOM 元素,然后使用 selectionStart 和 selectionEnd 属性来获取光标的位置。
比如,你可以在 template 中加入一个输入框,然后在组件的 data 中加入一个 ref 属性,并在 mounted 钩子函数中将 ref 绑定到 DOM 元素上。
然后,你就可以在你的方法中使用 this.refs.input.selectionStart 和 this.refs.input.selectionEnd 来获取光标的位置。
如果没有选中的话,selectionStart 和 selectionEnd 的值是相等的,代表光标所在的位置。
你可以使用 JavaScript 的文本处理方法,比如 substr() 和 substring(),来插入字符。
例如:
```
const inputValue = this.refs.input.value;
const start = this.refs.input.selectionStart;
const end = this.refs.input.selectionEnd;
// 在光标处插入字符
this.refs.input.value = inputValue.substring(0, start) + 'a' + inputValue.substring(end);
```
如果你想在输入框最前面添加字符,可以将 start 设为 0,end 设为原来的值。
例如:
```
const inputValue = this.refs.input.value;
// 在最前面插入字符
this.refs.input.value = 'a' + inputValue;
```
阅读全文