diff --git a/src/pages/Home/components/LoginForm.vue b/src/pages/Home/components/LoginForm.vue index ea325d1..f744800 100644 --- a/src/pages/Home/components/LoginForm.vue +++ b/src/pages/Home/components/LoginForm.vue @@ -127,7 +127,12 @@ const handleKeyDown = (e: KeyboardEvent) => { (activeIndex.value - 1 + suggestList.value.length) % suggestList.value.length } else if (e.key === 'Enter' && activeIndex.value !== -1) { e.preventDefault() - selectSuggest(suggestList.value[activeIndex.value]) + // 修复之前的 [object Object] 问题,确保传入的是 .full + selectSuggest(suggestList.value[activeIndex.value].full) + } else if (e.key === 'Tab' && activeIndex.value !== -1) { + // 💡 新增:按下 Tab 键时也自动补全 + e.preventDefault() + selectSuggest(suggestList.value[activeIndex.value].full) } } @@ -160,7 +165,10 @@ const selectSuggest = (fullSuffix: string) => { const onBlur = () => { // 必须延迟,否则点击列表时会先触发 blur 导致列表消失无法选中 - setTimeout(() => (isFocused.value = false), 200) + setTimeout(() => { + isFocused.value = false + activeIndex.value = -1 // 重置索引 + }, 200) } // 3. 校验逻辑