diff --git a/packages/components/autocomplete/src/autocomplete.vue b/packages/components/autocomplete/src/autocomplete.vue index f3814048af..e0ab3e6c0b 100644 --- a/packages/components/autocomplete/src/autocomplete.vue +++ b/packages/components/autocomplete/src/autocomplete.vue @@ -144,6 +144,7 @@ const regionRef = ref() const popperRef = ref() const listboxRef = ref() +let readonly = false let ignoreFocusEvent = false const suggestions = ref([]) const highlightedIndex = ref(-1) @@ -249,7 +250,8 @@ const handleFocus = (evt: FocusEvent) => { activated.value = true emit('focus', evt) - if (props.triggerOnFocus) { + // fix https://github.com/element-plus/element-plus/issues/8278 + if (props.triggerOnFocus && !readonly) { debouncedGetData(String(props.modelValue)) } } @@ -355,6 +357,8 @@ onMounted(() => { 'aria-activedescendant', `${listboxId.value}-item-${highlightedIndex.value}` ) + // get readonly attr + readonly = (inputRef.value as any).ref!.hasAttribute('readonly') }) defineExpose({