vue获取下拉框的值,用vue-modle,只有点击下拉框的值才会赋值到下拉框中,初始时下拉框没有数据,而改用$event就不会出现这样的问题,下面看代码以及图解:
v-model解决方式:
<!-- 下拉框 -->
<div v-show="moreStore" class="select">
<select class="choice" v-on:change="indexSelect" v-model="indexId">
<option v-for="item in index" v-bind:value="item.indexId">{{item.name}}</option>
</select>
</div>
下拉框的值:
index: [{
"indexId":1,
"name": "点菜用户数"
}, {
"indexId":2,
"name": "点菜新用户数"
}, {
"indexId":3,
"name": "首次留联系方式人数"
}, {
"indexId":4,
"name": "已有联系方式人数"
}]
在这里,indexId要在data里面声明一下
事件:
// 获取id值
indexSelect(){
console.log(this.indexId);//在这里可以正确输出每个下拉框对应的下标值,当然输出值都是可以的
}
改用$event的解决方式
<!-- 下拉框 -->
<div v-show="moreStore" class="select">
<select class="choice" v-on:change="indexSelect($event)">
<option v-for="item in index" v-bind:value="item.indexId">{{item.name}}</option>
</select>
</div>
事件:
// 获取value值
indexSelect(event){
console.log(event.target.value);
},
图示:
当然,可以根据自己的项目需要来选择哪种方法。在这里,v-on:change也可以写成v-on:click