You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue.js中Bootstrap-Vue的b-dropdown无法选中项问题

解决Bootstrap-Vue下拉框无法选中选项的问题

嘿,我帮你排查了下代码问题——你搞混了Bootstrap-Vue里<b-dropdown>的v-model作用啦!

<b-dropdown>的v-model其实是用来控制下拉菜单展开/收起状态的,不是绑定选中的选项值。要实现选中选项后更新selectedItem,你需要这么修改:

修改后的组件代码

模板部分

<b-col sm="2">
  <!-- 用@change监听选中事件,替换原来的v-model -->
  <b-dropdown :text="selectedItem || '请选择'" @change="selectedItem = $event">
    <!-- 给每个下拉选项加上value属性 -->
    <b-dropdown-item value="Action">Action</b-dropdown-item>
    <b-dropdown-item value="Another action">Another action</b-dropdown-item>
    <b-dropdown-item value="Something else here">Something else here</b-dropdown-item>
  </b-dropdown>
  {{ selectedItem }}
</b-col>

Data部分(保持不变)

data () {
  return {
    selectedItem: ''
  }
}

关键修改点说明

  • 给每个<b-dropdown-item>添加value属性:选中选项时,@change事件会把这个value作为参数传递出来
  • 用@change事件更新selectedItem:替代原来错误绑定的v-model,因为<b-dropdown>的v-model只负责菜单的显示/隐藏
  • 优化默认文本:selectedItem || '请选择'让初始状态有友好的提示,而不是空文本

额外建议:如果是表单场景,推荐用<b-form-select>

如果你需要的是表单式的下拉选择器(而非导航类下拉菜单),Bootstrap-Vue的<b-form-select>更适合,代码更简洁:

<b-col sm="2">
  <b-form-select 
    v-model="selectedItem" 
    :options="[
      { text: 'Action', value: 'Action' },
      { text: 'Another action', value: 'Another action' },
      { text: 'Something else here', value: 'Something else here' }
    ]"
  ></b-form-select>
  {{ selectedItem }}
</b-col>

内容的提问来源于stack exchange,提问作者Maryadi Poipo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:23:14