vue-select下拉选择框-输出框中的内容而不是对应的值

本文介绍了一种在Vue中使用Element UI的下拉选择框时,如何同时获取选中项的值及其显示文本的方法。

项目场景:

一个下拉选择框,有的时候后端需要我们传的参数除了有选中内容对应的value,还需要选中的内容本身,但是v-model绑定的通常是选中内容对应的value


解决方案:

首先来看一下一个普通的下拉选择框的结构,和绑定的list的结构

  <el-select
     v-model="value"
     placeholder="请选择"
  >
    <el-option
      v-for="(item, i) in list"
      :key="i"
      :label="item.label"
      :value="item.value"
     />
  </el-select>
   list:[ 
            {
               value: '选项1',
               label: '黄金糕'
            }, 
            {
               value: '选项2',
               label: '双皮奶'
             }
          ]

如果选中第一个在这里插入图片描述

此时:console.log(value) 会得到 ‘选项1’

只要给select加一个 ref=“value” ,就可以用this.$refs.value.selected.label 得到 ‘黄金糕’

  <el-select
     ref="value"
     v-model="value"
     placeholder="请选择"
  >
    <el-option
      v-for="(item, i) in list"
      :key="i"
      :label="item.label"
      :value="item.value"
     />
  </el-select>
Vue 中显示 `u-select` 组件的选中,可以通过 `v-model` 指令将选中的绑定到一个数据属性上。然后通过访问该数据属性即可获取并显示选中的。以下是详细的实现方式和示例代码: ### 1. 安装并引入 `u-select` 组件 首先需要确保已经安装了 `u-select` 或者类似的组件库。如果尚未安装,可以使用以下命令进行安装: ```bash npm install vue-select ``` 然后在项目中引入并注册组件: ```javascript import Vue from 'vue'; import vSelect from 'vue-select'; Vue.component('v-select', vSelect); ``` 注意:这里假设 `u-select` 是指代类似于 `vue-select` 的组件。如果实际使用的组件名称不同,请根据实际情况调整。 --- ### 2. 使用 `v-model` 绑定选中 在模板中使用 `u-select` 或 `v-select` 组件,并通过 `v-model` 将选中的绑定到一个数据属性上。例如: ```html <template> <div> <!-- u-select 或 v-select 组件 --> <v-select v-model="selectedValue" :options="options"></v-select> <!-- 显示选中的 --> <p>当前选中的为: {{ selectedValue }}</p> </div> </template> ``` --- ### 3. 数据与方法定义 在 Vue 实例中定义相关数据和选项列表: ```javascript export default { data() { return { // 用于存储选中的 selectedValue: null, // 下拉选项列表 options: [ { label: '选项1', value: 'value1' }, { label: '选项2', value: 'value2' }, { label: '选项3', value: 'value3' } ] }; } }; ``` 在这里,`options` 是一个数组,每个对象包含 `label` 和 `value` 属性。`label` 是显示在下拉菜单中的文本,而 `value` 是对应[^2]。 --- ### 4. 示例代码完整版 以下是一个完整的 Vue 组件示例,展示了如何使用 `u-select`(或 `v-select`)组件并显示选中的: ```html <template> <div> <!-- 下拉选择框 --> <v-select v-model="selectedValue" :options="options" label="label"></v-select> <!-- 显示选中的 --> <p>当前选中的为: {{ selectedValue ? selectedValue.value : '未选择' }}</p> </div> </template> <script> import Vue from 'vue'; import vSelect from 'vue-select'; Vue.component('v-select', vSelect); export default { data() { return { // 选中的 selectedValue: null, // 下拉选项 options: [ { label: '选项1', value: 'value1' }, { label: '选项2', value: 'value2' }, { label: '选项3', value: 'value3' } ] }; } }; </script> <style> /* 引入 vue-select 的样式 */ @import 'vue-select/dist/vue-select.css'; </style> ``` --- ### 5. 注意事项 - 如果需要默认选中某个,可以在 `data` 中初始化 `selectedValue` 属性。例如:`selectedValue: { label: '选项1', value: 'value1' }`[^4]。 - 确保 `options` 中的每个对象结构与 `v-model` 的绑定一致,否则可能导致无法正确显示选中[^1]。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值