此解决方法对于输入框存在一个缺陷:输入框的值有很长时,比如我点到靠前的位置删除某些字符,然后视图展示的是到末尾的位置,光标的位置正确。
<a-textarea
:autoSize="{ minRows: 1, maxRows: 8 }"
style="width: 100%"
v-model="form.remark"
placeholder="请输入"
@input="handleChange($event)"
@keydown.delete="FieldDelete"
></a-textarea>
// 解决光标总是跳到末尾的情况
handleChange(e) {
console.log(e)
const Elelct = e.srcElement.selectionEnd
console.log('Elelct', Elelct)
setTimeout(() => {
e.srcElement.setSelectionRange(Elelct + 1, Elelct)
}, 1)
},
//
FieldDelete(e) {
const Elelct = e.srcElement.selectionStart
setTimeout(() => {
e.srcElement.setSelectionRange(Elelct - 1, Elelct - 1)
}, 1)
},