diff --git a/packages/components/input/src/useInput.ts b/packages/components/input/src/useInput.ts index dec773f9d..43ebd1f3c 100644 --- a/packages/components/input/src/useInput.ts +++ b/packages/components/input/src/useInput.ts @@ -72,8 +72,8 @@ export function useInput( watch(accessor.valueRef, () => syncValue()) const isComposing = ref(false) - const handleInput = (evt: Event) => { - callEmit(props.onInput, evt) + const handleInput = (evt: Event, emitInput = true) => { + emitInput && callEmit(props.onInput, evt) if (isComposing.value) { return } @@ -96,7 +96,7 @@ export function useInput( callEmit(props.onCompositionEnd, evt) if (isComposing.value) { isComposing.value = false - handleInput(evt) + handleInput(evt, false) } } diff --git a/packages/components/select/src/composables/useInputState.ts b/packages/components/select/src/composables/useInputState.ts index 32fecf968..a960feaee 100644 --- a/packages/components/select/src/composables/useInputState.ts +++ b/packages/components/select/src/composables/useInputState.ts @@ -58,14 +58,15 @@ export function useInputState( } const handleCompositionEnd = (evt: CompositionEvent) => { + callEmit(props.onCompositionEnd, evt) if (isComposing.value) { isComposing.value = false + handleInput(evt, false) } - callEmit(props.onCompositionEnd, evt) } - const handleInput = (evt: Event) => { - callEmit(props.onInput, evt) + const handleInput = (evt: Event, emitInput = true) => { + emitInput && callEmit(props.onInput, evt) if (isComposing.value) { return }