vue-multiselect-accessibility
Multiselect component for vue.js
7,691
6,778
| Install | |
|---|---|
npm install vue-multiselect-accessibility@2.2.0 |
|
| Latest Version: | 2.2.0 |
| Vue: | 2 |
| License: | MIT |
| Last Updated: | Sep 17, 2026 |
| Links: | GitHub · npm |
Maintainer: patrick.norris
vue-multiselect 


Probably the most complete selecting solution for Vue.js 2.0, without jQuery.

Features & characteristics:
- NO dependencies
- Single select
- Multiple select
- Tagging
- Dropdowns
- Filtering
- Search with suggestions
- Logic split into mixins
- Basic component and support for custom components
- V-model support
- Vuex support
- Async options support
- > 95% test coverage
- Fully configurable (see props list below)
Breaking changes:
- Instead of Vue.partial for custom option templates you can use a custom render function.
- The
:keyprops has changed to:track-by, due to conflicts with Vue 2.0. - Support for
v-model @updatehas changed to@inputto also work with v-model:selectedhas changed to:valuefor the same reason- Browserify users: if you wish to import
.vuefiles, please addvueifytransform.
Install & basic usage
npm install vue-multiselect
<template>
<div>
<multiselect
v-model="selected"
:options="options">
</multiselect>
</div>
</template>
<script>
import Multiselect from 'vue-multiselect'
export default {
components: { Multiselect },
data () {
return {
selected: null,
options: ['list', 'of', 'options']
}
}
}
</script>
<style src="vue-multiselect/dist/vue-multiselect.min.css"></style>
JSFiddle
Example JSFiddle – Use this for issue reproduction.
Examples
in jade-lang/pug-lang
Single select / dropdown
multiselect(
:value="value",
:options="source",
:searchable="false",
:close-on-select="false",
:allow-empty="false",
@input="updateSelected",
label="name",
placeholder="Select one",
track-by="name"
)
Single select with search
multiselect(
v-model="value",
:options="source",
:close-on-select="true",
:clear-on-select="false",
placeholder="Select one",
label="name",
track-by="name"
)
Multiple select with search
multiselect(
v-model="multiValue",
:options="source",
:multiple="true",
:close-on-select="true",
placeholder="Pick some",
label="name",
track-by="name"
)
Tagging
with @tag event
multiselect(
v-model="taggingSelected",
:options="taggingOptions",
:multiple="true",
:taggable="true",
@tag="addTag",
tag-placeholder="Add this as new tag",
placeholder="Type to search or add tag",
label="name",
track-by="code"
)
addTag (newTag) {
const tag = {
name: newTag,
code: newTag.substring(0, 2) + Math.floor((Math.random() * 10000000))
}
this.taggingOptions.push(tag)
this.taggingSelected.push(tag)
},
Asynchronous dropdown
multiselect(
v-model="selectedCountries",
:options="countries",
:multiple="multiple",
:searchable="searchable",
@search-change="asyncFind",
placeholder="Type to search",
label="name"
track-by="code"
)
span(slot="noResult").
Oops! No elements found. Consider changing the search query.
methods: {
asyncFind (query) {
this.countries = findService(query)
}
}
Contributing
# serve with hot reload at localhost:8080
npm run dev
# distribution build with minification
npm run bundle
# build the documentation into docs
npm run docs
# run unit tests
npm run test
# run unit tests watch
npm run unit
For detailed explanation on how things work, checkout the guide and docs for vue-loader.
Version History
| Version | Released | Vue | License |
|---|---|---|---|
| 2.2.0 | ^2.5.15 | MIT | |
| 2.1.94 | ^2.5.15 | MIT | |
| 2.1.93 | ^2.5.15 | MIT | |
| 2.1.92 | ^2.5.15 | MIT | |
| 2.1.91 | ^2.5.15 | MIT | |
| 2.1.90 | ^2.5.15 | MIT | |
| 2.1.89 | ^2.5.15 | MIT | |
| 2.1.88 | ^2.5.15 | MIT | |
| 2.1.87 | ^2.5.15 | MIT | |
| 2.1.86 | ^2.5.15 | MIT | |
| 2.1.85 | ^2.5.15 | MIT | |
| 2.1.84 | ^2.5.15 | MIT | |
| 2.1.83 | ^2.5.15 | MIT | |
| 2.1.82 | ^2.5.15 | MIT | |
| 2.1.81 | ^2.5.15 | MIT | |
| 2.1.80 | ^2.5.15 | MIT | |
| 2.1.79 | ^2.5.15 | MIT | |
| 2.1.78 | ^2.5.15 | MIT | |
| 2.1.77 | ^2.5.15 | MIT | |
| 2.1.76 | ^2.5.15 | MIT | |
| 2.1.75 | ^2.5.15 | MIT | |
| 2.1.74 | ^2.5.15 | MIT | |
| 2.1.73 | ^2.5.15 | MIT | |
| 2.1.72 | ^2.5.15 | MIT | |
| 2.1.71 | ^2.5.15 | MIT | |
| 2.1.70 | ^2.5.15 | MIT | |
| 2.1.69 | ^2.5.15 | MIT | |
| 2.1.68 | ^2.5.15 | MIT | |
| 2.1.67 | ^2.5.15 | MIT | |
| 2.1.66 | ^2.5.15 | MIT |
Showing the latest 30 of 90. See every release on npm