---
title: Autocomplete
lang: en-US
---
# Autocomplete
Get some recommended tips based on the current input.
:::tip
This component requires the `` wrap when used in SSR (eg: [Nuxt](https://nuxt.com/v3)) and SSG (eg: [VitePress](https://vitepress.vuejs.org/)).
:::
## Basic Usage
Autocomplete component provides input suggestions.
:::demo The `fetch-suggestions` attribute is a method that return suggested inputs. In this example, `querySearch(queryString, cb)` return suggestions to Autocomplete via `cb(data)` when suggestions are ready.
autocomplete/autocomplete
:::
## Custom template
Customize how suggestions are displayed.
:::demo Use `scoped slot` to customize suggestion items. In the scope, you can access the suggestion object via the `item` key.
autocomplete/autocomplete-template
:::
## Remote search
Search data from server-side.
:::demo
autocomplete/remote-search
:::
## API
### Attributes
| Name | Description | Type | Default |
| -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ------------ |
| model-value / v-model | binding value | ^[string] | — |
| placeholder | the placeholder of Autocomplete | ^[string] | — |
| clearable | whether to show clear button | ^[boolean] | false |
| disabled | whether Autocomplete is disabled | ^[boolean] | false |
| value-key | key name of the input suggestion object for display | ^[string] | value |
| debounce | debounce delay when typing, in milliseconds | ^[number] | 300 |
| placement | placement of the popup menu | ^[enum]`'top' \| 'top- start' \| 'top-end' \| 'bottom' \| 'bottom-start' \| 'bottom-end'` | bottom-start |
| fetch-suggestions | a method to fetch input suggestions. When suggestions are ready, invoke `callback(data:[])` to return them to Autocomplete | ^[Function]`(queryString: string, callback: callbackfn) => void` | — |
| trigger-on-focus | whether show suggestions when input focus | ^[boolean] | true |
| select-when-unmatched | whether to emit a `select` event on enter when there is no autocomplete match | ^[boolean] | false |
| name | same as `name` in native input | ^[string] | — |
| label | label text | ^[string] | — |
| hide-loading | whether to hide the loading icon in remote search | ^[boolean] | false |
| popper-class | custom class name for autocomplete's dropdown | ^[string] | — |
| popper-append-to-body | whether to append the dropdown to body. If the positioning of the dropdown is wrong, you can try to set this prop to false | ^[boolean] | false |
| teleported | whether select dropdown is teleported to the body | ^[boolean] | true |
| highlight-first-item | whether to highlight first item in remote search suggestions by default | ^[boolean] | false |
| fit-input-width | whether the width of the dropdown is the same as the input | ^[boolean] | false |
### Events
| Name | Description | Type |
| ------ | ------------------------------------------------ | ----------------------------------------------------- |
| select | triggers when a suggestion is clicked | ^[Function]`(item: typeof modelValue \| any) => void` |
| change | triggers when the icon inside Input value change | ^[Function]`(value: string \| number) => void` |
### Slots
| Name | Description |
| ------- | --------------------------------------------------------------------- |
| default | custom content for input suggestions. The scope parameter is { item } |
| prefix | content as Input prefix |
| suffix | content as Input suffix |
| prepend | content to prepend before Input |
| append | content to append after Input |
### Exposes
| Name | Description | Type |
| ---------------- | ------------------------------------------- | ----------------------------------------- |
| activated | if autocomplete activated | ^[object]`Ref` |
| blur | blur the input element | ^[Function]`() => void` |
| close | collapse suggestion list | ^[Function]`() => void` |
| focus | focus the input element | ^[Function]`() => void` |
| handleSelect | triggers when a suggestion is clicked | ^[Function]`(item: any) => promise` |
| handleKeyEnter | handle keyboard enter event | ^[Function]`() => promise` |
| highlightedIndex | the index of the currently highlighted item | ^[object]`Ref` |
| highlight | highlight an item in a suggestion | ^[Function]`(itemIndex: number) => void` |
| inputRef | el-input component instance | ^[object]`Ref` |
| loading | remote search loading indicator | ^[object]`Ref` |
| popperRef | el-tooltip component instance | ^[object]`Ref` |
| suggestions | fetch suggestions result | ^[object]`Ref>` |