Vue.js get selected option on @change Vue.js get selected option on @change vue.js vue.js

Vue.js get selected option on @change


Use v-model to bind the value of selected option's value. Here is an example.

<select name="LeaveType" @change="onChange($event)" class="form-control" v-model="key">   <option value="1">Annual Leave/ Off-Day</option>   <option value="2">On Demand Leave</option></select><script>var vm = new Vue({    data: {        key: ""    },    methods: {        onChange(event) {            console.log(event.target.value)        }    }}</script>

More reference can been seen from here.


@ is a shortcut option for v-on. Use @ only when you want to execute some Vue methods. As you are not executing Vue methods, instead you are calling javascript function, you need to use onchange attribute to call javascript function

<select name="LeaveType" onchange="onChange(this.value)" class="form-control"> <option value="1">Annual Leave/ Off-Day</option> <option value="2">On Demand Leave</option></select>function onChange(value) {  console.log(value);}

If you want to call Vue methods, do it like this-

<select name="LeaveType" @change="onChange($event)" class="form-control"> <option value="1">Annual Leave/ Off-Day</option> <option value="2">On Demand Leave</option></select>new Vue({  ...  ...  methods:{    onChange:function(event){       console.log(event.target.value);    }  }})

You can use v-model data attribute on the select element to bind the value.

<select v-model="selectedValue" name="LeaveType" onchange="onChange(this.value)" class="form-control"> <option value="1">Annual Leave/ Off-Day</option> <option value="2">On Demand Leave</option></select>new Vue({    data:{        selectedValue : 1, // First option will be selected by default    },    ...    ...    methods:{        onChange:function(event){            console.log(this.selectedValue);        }    }})

Hope this Helps :-)


The changed value will be in event.target.value

const app = new Vue({  el: "#app",  data: function() {    return {      message: "Vue"    }  },  methods: {    onChange(event) {      console.log(event.target.value);    }  }})
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script><div id="app">  <select name="LeaveType" @change="onChange" class="form-control">   <option value="1">Annual Leave/ Off-Day</option>   <option value="2">On Demand Leave</option></select></div>