How to Use the Select Tag with Vue
Mar 9, 2021
In HTML, the <select>
tag lets you create a dropdown that
lets the user select one of several options. The easiest way
to tie Vue state to the value of a <select>
tag is using
v-model
. Below is an example:
Your Choice is: {{selected}}
<script src="https://unpkg.com/vue@next"></script>
<div style = "outline-style: solid" id="example">
<select v-model="selected">
<option disabled value="">Please Select</option>
<option>A</option>
<option>B</option>
<option>C</option>
</select>
<span style="padding-left:5%">Your Choice is: {{selected}}</span>
</div>
<script>
Vue.createApp({
data() {
return {
selected: ''
};
}
}).mount('#example');
</script>
Note: On iOS, if the initial value of your v-model
does not match any of the
options, it will cause the browser to render the <select>
tag in a "unselected" state. Any browser running on iOS won't fire a change event for a <select>
in an unselected tag, which means the user won't be able to select the first option. Therefore, we recommend using a disabled
option with an empty value as the first element.
With v-for
With v-for
, you can create an option for every value in an array.
Below is an example:
Your Choice is: {{selected}}
<script src="https://unpkg.com/vue@next"></script>
<div style = "outline-style: solid" id="demo">
<select v-model="selected">
<option disabled value="">Please Select</option>
<option v-for="option in options" :value="option">{{option}}</option>
</select>
<span style="padding-left:5%">Your Choice is: {{selected}}</span>
</div>
<script>
Vue.createApp({
data() {
return {
selected: '',
options: [
'A',
'B',
'C'
]
};
}
}).mount('#demo');
</script>
Vue School has some of our favorite Vue
video courses. Their Vue.js Master Class walks you through building a real
world application, and does a great job of teaching you how to integrate Vue
with Firebase.
Check it out!
Did you find this tutorial useful? Say thanks by starring our repo on GitHub!