vue3,光标所在位置插入字符,没有选中光标的话默认在输入框最前面添加字符...
时间: 2023-12-09 19:06:39 浏览: 169
你可以使用 `selectionStart` 和 `selectionEnd` 属性来获取光标的位置,然后在指定位置插入字符。以下是一个示例代码:
```html
<template>
<div>
<input ref="input" type="text" @keydown="handleKeyDown">
</div>
</template>
<script>
export default {
methods: {
handleKeyDown(event) {
if (event.key === 'Enter') {
event.preventDefault();
const input = this.$refs.input;
const startPos = input.selectionStart;
const endPos = input.selectionEnd;
const value = input.value;
const newValue = value.substring(0, startPos) + "你要插入的字符" + value.substring(endPos, value.length);
input.value = newValue;
input.selectionStart = input.selectionEnd = startPos + 1; // 将光标移动到插入的字符后面
}
}
}
}
</script>
```
在上述示例代码中,我们使用 `selectionStart` 和 `selectionEnd` 获取了光标的位置,然后使用 `substring()` 方法拼接了新的字符串,并将其赋值给了输入框的 `value` 属性。最后,我们使用 `selectionStart` 将光标移动到插入的字符后面。
阅读全文