当前位置:首页 > VUE

vue 实现单选和多选

2026-01-22 18:25:11VUE

Vue 实现单选

在 Vue 中实现单选功能,通常使用 v-model 绑定到同一个变量,确保同一时间只有一个选项被选中。

<template>
  <div>
    <label v-for="option in options" :key="option.value">
      <input 
        type="radio" 
        v-model="selectedOption" 
        :value="option.value"
      />
      {{ option.label }}
    </label>
    <p>Selected: {{ selectedOption }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: '',
      options: [
        { value: 'option1', label: 'Option 1' },
        { value: 'option2', label: 'Option 2' },
        { value: 'option3', label: 'Option 3' }
      ]
    };
  }
};
</script>
  • 使用 v-model 绑定 selectedOption,确保单选逻辑。
  • options 数组定义可选项,通过 v-for 动态渲染。
  • 选中的值会实时更新到 selectedOption

Vue 实现多选

多选功能可以通过 v-model 绑定到一个数组,并配合 checkbox 实现。

vue 实现单选和多选

<template>
  <div>
    <label v-for="option in options" :key="option.value">
      <input 
        type="checkbox" 
        v-model="selectedOptions" 
        :value="option.value"
      />
      {{ option.label }}
    </label>
    <p>Selected: {{ selectedOptions }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOptions: [],
      options: [
        { value: 'option1', label: 'Option 1' },
        { value: 'option2', label: 'Option 2' },
        { value: 'option3', label: 'Option 3' }
      ]
    };
  }
};
</script>
  • v-model 绑定到数组 selectedOptions,自动处理多选逻辑。
  • 勾选或取消勾选时,数组会动态更新。
  • 初始值为空数组,确保多选功能正常。

使用组件库实现单选和多选

如果需要更复杂的 UI,可以借助组件库如 Element UIAnt Design Vue

vue 实现单选和多选

Element UI 单选

<template>
  <el-radio-group v-model="selectedOption">
    <el-radio 
      v-for="option in options" 
      :key="option.value" 
      :label="option.value"
    >
      {{ option.label }}
    </el-radio>
  </el-radio-group>
</template>

Element UI 多选

<template>
  <el-checkbox-group v-model="selectedOptions">
    <el-checkbox 
      v-for="option in options" 
      :key="option.value" 
      :label="option.value"
    >
      {{ option.label }}
    </el-checkbox>
  </el-checkbox-group>
</template>
  • 组件库提供现成的样式和交互逻辑。
  • 用法与原生类似,但封装了更多功能(如禁用状态、分组等)。

动态绑定选项

选项可以动态从接口获取,只需更新 options 数据即可。

export default {
  data() {
    return {
      selectedOption: '',
      options: []
    };
  },
  async created() {
    const res = await fetch('https://api.example.com/options');
    this.options = await res.json();
  }
};
  • createdmounted 钩子中请求数据。
  • 数据更新后,模板会自动重新渲染选项。

表单验证

结合 VuelidateElement UI 的表单验证,确保选项必选。

<template>
  <el-form :model="form" :rules="rules">
    <el-form-item label="单选" prop="selectedOption">
      <el-radio-group v-model="form.selectedOption">
        <el-radio label="option1">Option 1</el-radio>
      </el-radio-group>
    </el-form-item>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      form: { selectedOption: '' },
      rules: {
        selectedOption: [
          { required: true, message: '请选择', trigger: 'change' }
        ]
      }
    };
  }
};
</script>
  • 通过 rules 定义验证逻辑。
  • 表单提交前会自动校验选项是否合法。

标签: 多选单选
分享给朋友:

相关文章

vue 实现单选功能

vue 实现单选功能

实现单选功能的方法 在Vue中实现单选功能可以通过多种方式完成,以下是几种常见的方法: 使用原生HTML单选按钮 通过v-model绑定数据,结合原生<input type="radio"&g…

vue点击实现多选

vue点击实现多选

Vue 实现多选功能的方法 在 Vue 中实现多选功能可以通过多种方式完成,以下介绍几种常见的实现方法: 使用 v-model 绑定数组 通过 v-model 绑定一个数组,当复选框被选中时,会自动…

vue前端实现多选

vue前端实现多选

Vue 前端实现多选的方法 使用 v-model 绑定数组 在 Vue 中,可以通过 v-model 绑定一个数组来实现多选功能。适用于复选框组(checkbox)或多选下拉框(select)。 &…

vue实现多选删除

vue实现多选删除

实现多选删除功能 在Vue中实现多选删除功能通常涉及以下几个关键步骤:数据绑定、选择状态管理、删除逻辑处理。以下是具体实现方法: 数据准备与渲染 创建包含选择状态的数据结构,通常是一个对象数组,每个…

vue 如何实现多选

vue 如何实现多选

Vue 实现多选的几种方法 使用 v-model 绑定数组 在 Vue 中,可以通过 v-model 绑定一个数组来实现多选功能。当用户勾选多个选项时,选中的值会自动添加到数组中。 <temp…

vue实现多选互斥

vue实现多选互斥

Vue 实现多选互斥的方法 多选互斥指的是在多个选项中,允许选择多个选项,但某些选项之间不能同时被选中。以下是几种实现方式: 使用计算属性和监听器 通过计算属性和监听器动态控制选项的互斥逻辑。定义一…