2017-08-10 55 views
1

HTML:如何從vue js中的select中獲取值和文本?

<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> 

Click事件:

<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); 
     } 
    } 
} 

在這裏,我有選擇的選項列表, 當我點擊addFacilitiesvalue所選選項僅作爲console.log的輸出,我需要同時有value以及text中的選項通過console.log出現..如何同時獲得valuetext當我點擊addFacilities

回答

1

在Vue中,您的value可能是一個複雜的對象。

在此示例中,這些值是一個同時包含文本和值的對象。當他們被選中時,你可以看到你有兩個在facilitySelected

console.clear() 
 

 

 
new Vue({ 
 
    el: "#app", 
 
    data: { 
 
    facilitySelected: [] 
 
    } 
 
})
<script src="https://unpkg.com/[email protected]/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/[email protected]/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>

相關問題