【问题标题】:How to loop checkbox for each value in dropdown list in vuejs?如何为vuejs下拉列表中的每个值循环复选框?
【发布时间】:2021-10-11 04:45:51
【问题描述】:

data() {
    return {
      selected: [],
    }
    watch: {
      selected(val) {
        this.$emit("checked", val);
      },
    },
<div class="dropdown">
  <span>State:</span>
  <select :disabled="listCities.length == 0" v-model="selectedCity">
    <option value="">Select a City</option>
    <option v-for="(city, index) in listCities" :key="index" :value="city.city_name">
      {{ city.city_name }}
      //<input type="checkbox" :id="index" :value="city.city_name" v-model="selected" />
    </option>
  </select>
</div>

如何在 vuejs 中为下拉列表中的每个值循环复选框?

基本上我有一个下拉列表,我可以在其中根据州选择可用城市列表。 所以,一旦我得到城市,我应该能够选择其中的多个并显示所选城市的数量。(通过为城市下拉列表中的每个值放置复选框,并显示所选城市的数量)

Codesandbox 链接工作:-https://codesandbox.io/s/xenodochial-bush-yxfc8?file=/src/App.vue

【问题讨论】:

  • 选择里面的复选框不是有效的html,所以你会遇到问题。你想实现什么 UI/UX?
  • @bassxzero 我想实现类似,一旦我从下拉列表中获取城市,我应该能够选择其中的多个并显示所选城市的数量。
  • 您考虑过使用多选吗?\
  • @bassxzero 如果可能的话,请您提供一些代码,说明如何使用它。

标签: javascript html vue.js


【解决方案1】:

一种方式:

new Vue({
  el: '#demo',
  data() {
    return {
      listCities: [{city_name: 'name 1'}, {city_name: 'name 2'}, {city_name: 'name 3'}, {city_name: 'name 4'}, {city_name: 'name 5'}, {city_name: 'name 6'}],
      selectedCity: []
    }
  },
  methods: {
    selectCity(city) {
      this.selectedCity.includes(city) ? this.selectedCity = this.selectedCity.filter(s => s !== city) : this.selectedCity.push(city)
    },
  }
})

Vue.config.productionTip = false
Vue.config.devtools = false
.city__list {
  list-style: none;
  height: 50px;
  width: 150px;
  overflow: auto;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>

<div id="demo" class="dropdown">
  <span>Cities:</span>
  <ul class="city__list">
    <li v-for="(city, index) in listCities" :key="index" >
      <input id="chk" type="checkbox" :value="city.city_name" @click="selectCity(city.city_name)" />
      {{ city.city_name }}
    </li>
  </ul>
  <span>Selected Cities:</span>
  <p>{{ selectedCity }}</p>
</div>

【讨论】:

  • 嗨,我已经这样做了,但唯一的问题是我无法为下拉列表中的每个可用列表放置复选框。
猜你喜欢
  • 1970-01-01
  • 2017-10-17
  • 1970-01-01
  • 1970-01-01
  • 2014-01-19
  • 1970-01-01
  • 2021-12-17
  • 2019-01-28
  • 2021-02-21
相关资源
最近更新 更多