javascript - 如何从 vue js 中的选择中获取值和文本?

标签 javascript vue.js vuejs2

HTML:

<select v-model="facilitySelected" name="facilities" multiple="multiple" id="facilities" size="4" class="form-control">
  <option value="1">Double (Non a/c)</option>
  <option value="2">Premium Double (a/c)</option>
  <option value="3">Standard Double (a/c)</option>
</select>

点击事件:

<a @click="addFacilities" class="btn btn-default add_option" rel="facilities2" id="add"><i class="fa fa-arrow-right"></i></a>

脚本:

export default {
  data(){
            return{
                facilitySelected:[]
            }
  }

  methods: {
      addFacilities() {
        this.facilitySelected;
        console.log(this.facilitySelected);
      }
  }
}

这里我有一个带有选项的选择列表, 当我点击 addFacilities 时,所选选项的 value 仅在 console.log 中作为输出,我需要同时拥有这两个 value 以及选项中的text 将通过console.log 出来。如何同时获取valuetext 当我点击 addFacilities 时?

最佳答案

在 Vue 中,您的 value 可以是一个复杂的对象。

在此示例中,值是包含文本和值的对象。选择它们后,您可以在 facilitySelected 中看到它们都可用。

console.clear()


new Vue({
  el: "#app",
  data: {
    facilitySelected: []
  }
})
<script src="https://unpkg.com/vue@2.2.6/dist/vue.js"></script>
<div id="app">
  <select v-model="facilitySelected" name="facilities" multiple="multiple" id="facilities" size="4" class="form-control">
  <option :value="{value: 1, text:'Double (Non a/c)'}">Double (Non a/c)</option>
  <option :value="{value: 2, text:'Premium Double (a/c)'}">Premium Double (a/c)</option>
  <option :value="{value: 3, text:'Standard Double (a/c)'}">Standard Double (a/c)</option>
</select>
  <hr> Selected: {{facilitySelected}}
</div>

但是您可以通过将您的选项存储在数据中来使这更容易并避免重复自己。

console.clear()


new Vue({
  el: "#app",
  data: {
    facilitySelected: [],
    options: [{
        value: 1,
        text: 'Double (Non a/c)'
      },
      {
        value: 2,
        text: 'Premium Double (a/c)'
      },
      {
        value: 3,
        text: 'Standard Double (a/c)'
      }
    ]
  }
})
<script src="https://unpkg.com/vue@2.2.6/dist/vue.js"></script>
<div id="app">
  <select v-model="facilitySelected" name="facilities" multiple="multiple" id="facilities" size="4" class="form-control">
  <option v-for="option in options" :value="option">{{option.text}}</option>
</select>
  <hr> Selected: {{facilitySelected}}
</div>

关于javascript - 如何从 vue js 中的选择中获取值和文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45604178/

相关文章:

javascript - 如何重构controllers.js,以便将每个 Controller 放在单独的文件中?

javascript - ajax调用后如何保留toggleClass事件状态?

javascript - 具有 CSS 动画和过渡效果的 Vue.js Todo 任务

css - 如何在 VueJS 中的 <ul> 上实现鼠标悬停?

javascript - 我们应该使用 v-model 来修改 Vuex store 吗?

javascript - 如何在vuejs中获取csrf_field

java - 未出现保存文件对话框

inheritance - 类方法在javascript中是如何实现的?

javascript - 如何测试 Vuetify VHover?

vue.js - VueJS : Using static HTML files