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

Vue+Vuetify中如何点击v-list项选中v-radio按钮

实现点击v-list列表项选中对应v-radio的方案

我帮你搞定这个需求啦!其实只要给列表项添加点击事件,同步更新单选组的绑定值就能实现,和复选框的点击选中逻辑类似。下面是完整的实现代码和关键说明:

完整代码示例

<link href='https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons' rel="stylesheet" type="text/css">
<link href="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.js"></script>

<div id="app">
  <v-app>
    <v-content>
      <v-container>
        <v-list two-line>
          <v-radio-group :mandatory="true" v-model="selectedItem">
            <v-list-item 
              v-for="item in items" 
              :key="item.value"
              @click="selectedItem = item.value"
              :class="{ 'v-list-item--active': selectedItem === item.value }"
            >
              <v-list-item-action>
                <v-radio :value="item.value"></v-radio>
              </v-list-item-action>
              <v-list-item-content>
                <v-list-item-title>{{ item.title }}</v-list-item-title>
                <v-list-item-subtitle>{{ item.subtitle }}</v-list-item-subtitle>
              </v-list-item-content>
            </v-list-item>
          </v-radio-group>
        </v-list>
      </v-container>
    </v-content>
  </v-app>
</div>
new Vue({
  el: '#app',
  vuetify: new Vuetify(),
  data() {
    return {
      selectedItem: null,
      items: [
        { title: '选项1', subtitle: '这是选项1的副标题', value: 'option1' },
        { title: '选项2', subtitle: '这是选项2的副标题', value: 'option2' },
        { title: '选项3', subtitle: '这是选项3的副标题', value: 'option3' }
      ]
    }
  }
})

关键实现细节

  • 点击事件绑定:给每个<v-list-item>添加@click="selectedItem = item.value",这样点击列表项任意区域都会把当前项的value赋值给单选组的绑定变量selectedItem,从而选中对应的v-radio
  • 状态同步:v-radio的:value和列表项的item.value对应,结合v-radio-group的v-model="selectedItem",确保单选按钮和列表项的选中状态完全同步
  • 视觉反馈:通过:class="{ 'v-list-item--active': selectedItem === item.value }"给选中的列表项添加Vuetify内置的激活样式,用户能直观看到哪个项被选中

这样实现后,不管是点击单选按钮还是点击整个列表项,都能正确触发选中状态,和你想要的复选框点击效果一致~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 10:09:37