まず、私はVueが初めてであり、これがVueを使用した初めてのプロジェクトであると言いたいです。コンボボックスがあり、選択したコンボボックスに基づいて異なることをしたい。別のvue.htmlとTypeScriptファイルを使用します。これが私のコードです。
<select name="LeaveType" @change="onChange()" class="form-control">
<option value="1">Annual Leave/ Off-Day</option>
<option value="2">On Demand Leave</option>
</select>
ここに私のtsファイルがあります
onChange(value) {
console.log(value);
}
TypeScript関数で選択したオプション値を取得する方法は?ありがとう。
v-model
を使用して、選択したオプションの値の値をバインドします。 ここに例があります 。
<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>
詳細な参照は here から見ることができます。
@はv-onのショートカットオプションです。 @は、いくつかのVueメソッドを実行する場合にのみ使用します。 Vueメソッドを実行していないため、代わりにjavascript関数を呼び出しているため、onchange属性を使用して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);
}
Vueメソッドを呼び出す場合は、次のようにします。
<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);
}
}
})
Select要素でv-model data属性を使用して、値をバインドできます。
<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);
}
}
})
お役に立てれば :-)
変更された値は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/[email protected]/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>
また、レスキューに v-model を使用することもできます
<template>
<select name="LeaveType" v-model="leaveType" @change="onChange()" class="form-control">
<option value="1">Annual Leave/ Off-Day</option>
<option value="2">On Demand Leave</option>
</select>
</template>
<script>
export default {
data() {
return {
leaveType: '',
}
},
methods: {
onChange() {
console.log('The new value is: ', this.leaveType)
}
}
}
</script>
@ change = "onChange()" an use watchersを保存できます。 Vueは計算および監視するために設計されています。値のみが必要で、他の複雑なイベント属性は必要ない場合。
何かのようなもの:
...
watch: {
leaveType () {
this.whateverMethod(this.leaveType)
}
},
methods: {
onChange() {
console.log('The new value is: ', this.leaveType)
}
}