fix: input textarea cursor pos error
parent
31c8339315
commit
66eb020ce1
|
@ -37,7 +37,6 @@ export function resolveOnChange(
|
|||
return;
|
||||
}
|
||||
const event: any = e;
|
||||
const originalInputValue = target.value;
|
||||
|
||||
if (e.type === 'click') {
|
||||
Object.defineProperty(event, 'target', {
|
||||
|
@ -48,13 +47,13 @@ export function resolveOnChange(
|
|||
});
|
||||
// click clear icon
|
||||
//event = Object.create(e);
|
||||
event.target = target;
|
||||
event.currentTarget = target;
|
||||
const currentTarget = target.cloneNode(true);
|
||||
|
||||
event.target = currentTarget;
|
||||
event.currentTarget = currentTarget;
|
||||
// change target ref value cause e.target.value should be '' when clear input
|
||||
target.value = '';
|
||||
(currentTarget as any).value = '';
|
||||
onChange(event);
|
||||
// reset target ref value
|
||||
target.value = originalInputValue;
|
||||
return;
|
||||
}
|
||||
// Trigger by composition event, this means we need force change the input value
|
||||
|
@ -227,7 +226,11 @@ export default defineComponent({
|
|||
if (props.value === undefined) {
|
||||
stateValue.value = value;
|
||||
} else {
|
||||
instance.update();
|
||||
nextTick(() => {
|
||||
if (inputRef.value.value !== stateValue.value) {
|
||||
instance.update();
|
||||
}
|
||||
});
|
||||
}
|
||||
nextTick(() => {
|
||||
callback && callback();
|
||||
|
|
|
@ -31,6 +31,7 @@ export default defineComponent({
|
|||
const formItemContext = useInjectFormItemContext();
|
||||
const stateValue = ref(props.value === undefined ? props.defaultValue : props.value);
|
||||
const resizableTextArea = ref();
|
||||
const mergedValue = ref('');
|
||||
const { prefixCls, size, direction } = useConfigInject('input', props);
|
||||
const showCount = computed(() => {
|
||||
return (props.showCount as any) === '' || props.showCount || false;
|
||||
|
@ -63,7 +64,11 @@ export default defineComponent({
|
|||
if (props.value === undefined) {
|
||||
stateValue.value = value;
|
||||
} else {
|
||||
resizableTextArea.value?.instance.update?.();
|
||||
nextTick(() => {
|
||||
if (resizableTextArea.value.textArea.value !== mergedValue.value) {
|
||||
resizableTextArea.value?.instance.update?.();
|
||||
}
|
||||
});
|
||||
}
|
||||
nextTick(() => {
|
||||
callback && callback();
|
||||
|
@ -152,7 +157,7 @@ export default defineComponent({
|
|||
blur,
|
||||
resizableTextArea,
|
||||
});
|
||||
const mergedValue = ref('');
|
||||
|
||||
watchEffect(() => {
|
||||
let val = fixControlledValue(stateValue.value) as string;
|
||||
if (
|
||||
|
|
Loading…
Reference in New Issue