vue3,光标所在位置插入一串字符,没有选中光标的话默认在输入框最前面添加一串字符...
时间: 2024-03-08 11:46:49 浏览: 20
在Vue3中,你可以使用`$refs`来获取到输入框元素的引用,然后通过`selectionStart`和`selectionEnd`属性来获取光标所在的位置,最后使用`setSelectionRange`方法来插入字符。以下是一个简单的示例代码:
```html
<template>
<input ref="input" type="text" @click="insertText">
</template>
<script>
export default {
methods: {
insertText() {
const inputEl = this.$refs.input
// 获取光标所在位置
const start = inputEl.selectionStart
const end = inputEl.selectionEnd
// 插入字符
const text = 'Hello World!'
inputEl.value = inputEl.value.slice(0, start) + text + inputEl.value.slice(end)
// 设置光标位置
const newStart = start + text.length
inputEl.setSelectionRange(newStart, newStart)
}
}
}
</script>
```
这个示例代码会在输入框中插入一串字符`Hello World!`,并且光标会跳到插入后的位置。如果没有选中光标,则默认在输入框最前面添加一串字符。