@ es una opción de acceso directo para v-on . Utilice @ solo cuando desee ejecutar algunos métodos de Vue. Como no está ejecutando métodos Vue, en su lugar está llamando a la función javascript, debe usar el atributo onchange para llamar a la función javascript
<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);
}
Si desea llamar a los métodos de Vue, hágalo así:
<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);
}
}
})
Puede utilizar el atributo de datos del modelo v en el elemento de selección para vincular el valor.
<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,
},
...
...
methods:{
onChange:function(event){
console.log(this.selectedValue);
}
}
})
Espero que esto ayude :-)