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 出来。如何同时获取value
和text
当我点击 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/