@ jest opcją skrótu do v-on . Użyj @ tylko wtedy, gdy chcesz wykonać niektóre metody Vue. Ponieważ nie wykonujesz metod Vue, zamiast tego wywołujesz funkcję javascript, musisz użyć atrybutu onchange, aby wywołać funkcję 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);
}
Jeśli chcesz wywołać metody Vue, zrób to w ten sposób-
<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);
}
}
})
Możesz użyć atrybutu danych modelu v na elemencie select, aby powiązać wartość.
<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);
}
}
})
Mam nadzieję że to pomoże :-)