script
const content = ref('')
const insertText = async (myValue) => {
const myField = document.querySelector('#textarea')
if (myField.selectionStart || myField.selectionStart === 0) {
var startPos = myField.selectionStart
var endPos = myField.selectionEnd
content.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length)
await nextTick() // 这里是重点
myField.focus()
myField.setSelectionRange(endPos + myValue.length, endPos + myValue.length)
} else {
content.value += myValue
}
}
template
<a-button @click="insertText('startDate')">插入内容</a-button>
<a-textarea v-model:value="content" :rows="16" id="textarea" />