Autocomplete

The v-autocomplete component offers simple and flexible type-ahead functionality. This is useful when searching large sets of data or even dynamically requesting information from an API.

Usage

The autocomplete component extends v-select and adds the ability to filter items.

API

v-autocomplete
Name
allow-overflow
Default
true
Type
boolean

Allow the menu to overflow off the screen

Name
append-icon
Default
'$vuetify.icons.dropdown'
Type
string

Appends an icon to the component, uses the same syntax as v-icon

Name
append-outer-icon New in — v1.1
Default
undefined
Type
string

Appends an icon to the outside the component's input, uses same syntax as v-icon

Name
attach
Default
false
Type
any

Specifies which DOM element that this component should detach to. Use either a CSS selector string or an object reference to the element.

Name
auto-select-first
Default
false
Type
boolean

When searching, will always highlight the first option

Name
autofocus
Default
false
Type
boolean

Enables autofocus

Name
background-color
Default
undefined
Type
string

Changes the background-color of the input

Name
box
Default
false
Type
boolean

Applies the alternate box input style

Name
browser-autocomplete
Default
'off'
Type
string

Configures the default <input> autocomplete attribute

Name
cache-items
Default
false
Type
boolean

Keeps a local unique copy of all items that have been passed through the items prop.

Name
chips
Default
false
Type
boolean

Changes display of selections to chips

Name
clear-icon
Default
'$vuetify.icons.clear'
Type
string

Applied when using clearable and the input is dirty

Name
clearable
Default
false
Type
boolean

Add input clear functionality, default icon is Material Icons clear

Name
color
Default
'primary'
Type
string

Applies specified color to the control - it can be the name of material color (for example success or purple) or css color (#033 or rgba(255, 0, 0, 0.5))

Name
counter
Default
undefined
Type
boolean | number | string

Creates counter for input length; if no number is specified, it defaults to 25. Does not apply any validation.

Name
dark
Default
false
Type
boolean

Applies the dark theme variant

Name
deletable-chips
Default
false
Type
boolean

Adds a remove icon to selected chips

Name
dense
Default
false
Type
boolean

Lowers max height of list items

Name
disabled
Default
false
Type
boolean

Disable the input

Name
dont-fill-mask-blanks
Default
false
Type
boolean

Disables the automatic character display when typing

Name
error
Default
false
Type
boolean

Puts the input in a manual error state

Name
error-count
Default
1
Type
number | string

The total number of errors that should display at once

Name
error-messages
Default
[]
Type
string | array

Puts the input in an error state and passes through custom error messages. Will be combined with any validations that occur from the rules prop. This field will not trigger validation

Name
filter
Default
(item: object, queryText: string, itemText: string) => boolean
Type
function

The filtering algorithm used when searching. example

Name
flat
Default
false
Type
boolean

Removes elevation (shadow) added to element when using the solo or solo-inverted props

Name
full-width
Default
false
Type
boolean

Designates input type as full-width

Name
height
Default
undefined
Type
number | string

Sets the component height

Name
hide-details
Default
false
Type
boolean

Hides hint, validation errors

Name
hide-no-data
Default
false
Type
boolean

Hides the menu when there are no options to show. Useful for preventing the menu from opening before results are fetched asynchronously. Also has the effect of opening the menu when the items array changes if not already open.

Name
hide-selected
Default
false
Type
boolean

Do not display in the select menu items that are already selected

Name
hint
Default
undefined
Type
string

Hint text

Name
item-avatar
Default
avatar
Type
string | array | function

Set property of items's avatar value

Name
item-disabled
Default
disabled
Type
string | array | function

Set property of items's disabled value

Name
item-text
Default
text
Type
string | array | function

Set property of items's text value

Name
item-value
Default
value
Type
string | array | function

Set property of items's value - must be primative. Dot notation is supported

Name
items
Default
[]
Type
array

Can be an array of objects or array of strings. When using objects, will look for a text and value field. This can be changed using the item-text and item-value props.

Name
label
Default
undefined
Type
string

Sets input label

Name
light
Default
false
Type
boolean

Applies the light theme variant

Name
loading
Default
false
Type
boolean | string

Displays linear progress bar. Can either be a String which specifies which color is applied to the progress bar (any material color or theme color - primary, secondary, success, info, warning, error) or a Boolean which uses the component color (set by color prop - if it's supported by the component) or the primary color

Name
mask
Default
undefined
Type
object | string

Apply a custom character mask to the input. See mask table below for more information

Name
menu-props New in — v1.2
Default
{"closeOnClick":false, "closeOnContentClick":false, "openOnClick":false, "maxHeight":300}
Type
string | array | object

Pass props through to the v-menu component. Accepts either a string for boolean props menu-props="auto, overflowY", or an object :menu-props="{ auto: true, overflowY: true }"

Name
messages
Default
[]
Type
string | array

Displays a list of messages or message if using a string

Name
multiple
Default
false
Type
boolean

Changes select to multiple. Accepts array for value

Name
no-data-text
Default
'$vuetify.noDataText'
Type
string

Display text when there is no data

Name
no-filter New in — v1.1
Default
false
Type
boolean

Do not apply filtering when searching. Useful when data is being filtered server side

Name
open-on-clear
Default
false
Type
boolean

When using the clearable prop, once cleared, the select menu will either open or stay open, depending on the current state

Name
outline
Default
false
Type
boolean

Applies the outline style to the input

Name
persistent-hint
Default
false
Type
boolean

Forces hint to always be visible

Name
placeholder
Default
undefined
Type
string

Sets the input’s placeholder text

Name
prefix
Default
undefined
Type
string

Displays prefix text

Name
prepend-icon
Default
undefined
Type
string

Prepends an icon to the component, uses the same syntax as v-icon

Name
prepend-inner-icon New in — v1.1
Default
undefined
Type
string

Prepends an icon inside the component's input, uses the same syntax as v-icon

Name
readonly
Default
false
Type
boolean

Puts input in readonly state

Name
return-masked-value
Default
false
Type
boolean

Returns the unmodified masked string

Name
return-object
Default
false
Type
boolean

Changes the selection behavior to return the object directly rather than the value specified with item-value

Name
reverse New in — v1.1
Default
false
Type
boolean

Reverses the input orientation

Name
rules
Default
[]
Type
array

Accepts an array of functions that return either True or a String with an error message

Name
search-input
Default
undefined
Type
any

Use the .sync modifier to catch user input from the search input

Name
single-line
Default
false
Type
boolean

Label does not move on focus/dirty

Name
small-chips New in — v1.1
Default
false
Type
boolean

Changes display of selections to chips with the small property

Name
solo
Default
false
Type
boolean

Changes the style of the input

Name
solo-inverted
Default
false
Type
boolean

Reduces element opacity until focused

Name
success New in — v1.1
Default
false
Type
boolean

Puts the input in a manual success state

Name
success-messages New in — v1.1
Default
[]
Type
string | array

Puts the input in a success state and passes through custom success messages.

Name
suffix
Default
undefined
Type
string

Displays suffix text

Name
type
Default
'text'
Type
string

Sets input type

Name
validate-on-blur
Default
false
Type
boolean

Delays validation until blur event

Name
value
Default
undefined
Type
any

Input value

Name
value-comparator
Default
(a: any, b: any) => boolean
Type
function

Apply a custom value comparator function

Supplemental

Mask legend
MaskDescription
Masks
#Any digit
AAny capital letter
aAny small letter
NAny capital alphanumeric character
nAny small alphanumeric character
XAny special symbol (-!$%^&*()_+|~=`{}[]:";'<>?,./\) or space
Pre-made
credit-card#### - #### - #### - ####
date-with-time##/##/#### ##:##
phone(###) ### - ####
social###-##-####
time##:##
time-with-seconds##:##:##

Examples

Searching an API

Easily hook up dynamic data and create a unique experience. The v-autocomplete's expansive prop list makes it easy to fine tune every aspect of the input.

Scoped slots

With the power of scoped slots, you can customize the visual output of the select. In this example we add a profile picture for both the chips and list items.

Custom filter on autocomplete

The filter prop can be used to filter each individual item with custom logic. In this example we filter items by name

Asynchronous items

Sometimes you need to load data externally based upon a search query. Use the search-input prop with the .sync modifier when using the autocomplete prop. We also make use of the new cache-items prop. This will keep a unique list of all items that have been passed to the items prop and is REQUIRED when using asynchronous items and the multiple prop.

Advanced slots

The v-autocomplete component is extremely flexible and can fit in just about any use-case. Create custom displays for no-data, item and selection slots to provide a unique user experience. Using scoped slots enables you to easily customize the desired look for your application.

Edit this page | language on Github
Vuetify 3 is now available!The latest version of Vuetify is now available!
Learn about Vuetify 3's new features and functionality for modern Vue applications
Start exploringExplore