vue获取下拉框值

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
原文地址:https://www.cnblogs.com/sunflower-zy/p/7270247.html