diff --git a/packages/components/select/src/Select.tsx b/packages/components/select/src/Select.tsx index 2a48554b5..7ed60fbc6 100644 --- a/packages/components/select/src/Select.tsx +++ b/packages/components/select/src/Select.tsx @@ -87,6 +87,7 @@ export default defineComponent({ handleRemove, clearInput, setOverlayOpened, + blur, ) watch(overlayOpened, opened => { diff --git a/packages/components/select/src/composables/useKeyboardEvents.ts b/packages/components/select/src/composables/useKeyboardEvents.ts index 18d84e59a..06e3174a3 100644 --- a/packages/components/select/src/composables/useKeyboardEvents.ts +++ b/packages/components/select/src/composables/useKeyboardEvents.ts @@ -20,6 +20,7 @@ export function useKeyboardEvents( handleRemove: (key: VKey) => void, clearInput: () => void, setOverlayOpened: (opened: boolean) => void, + blur: () => void | undefined, ): (evt: KeyboardEvent) => void { return (evt: KeyboardEvent) => { switch (evt.code) { @@ -36,7 +37,10 @@ export function useKeyboardEvents( const key = activeValue.value !isNil(key) && changeSelected(key) clearInput() - !isMultiple.value && setOverlayOpened(false) + if (!isMultiple.value) { + setOverlayOpened(false) + blur() + } break } case 'Backspace': {