当前位置:首页 > 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实现checkbox单选

vue实现checkbox单选

Vue实现Checkbox单选功能 在Vue中实现Checkbox单选功能,可以通过以下几种方法: 方法一:使用v-model绑定单个变量 通过将多个Checkbox绑定到同一个变量,利用v-mo…

vue实现全选 多选

vue实现全选 多选

Vue实现全选与多选功能 在Vue中实现全选和多选功能通常涉及数据绑定、事件处理和状态管理。以下是两种常见的实现方式: 基于v-model的双向绑定 使用v-model绑定复选框组,结合计算…

vue实现点击单选事件

vue实现点击单选事件

Vue 实现点击单选事件的方法 在 Vue 中实现单选功能可以通过多种方式完成,以下是一些常见的方法: 使用 v-model 绑定单选按钮 通过 v-model 绑定一个变量,可以轻松实现单选功能…

vue组件实现单选按钮

vue组件实现单选按钮

实现单选按钮的基本结构 在Vue中实现单选按钮,可以使用原生HTML的<input type="radio">结合v-model实现数据双向绑定。以下是一个基础示例: <templ…

vue实现多条件多选

vue实现多条件多选

Vue 实现多条件多选 使用 v-model 绑定多选数组 在 Vue 中,可以通过 v-model 绑定一个数组来实现多选功能。复选框的 value 属性会被添加到数组中,取消勾选时则从数组中移除。…

vue 多选框实现删除

vue 多选框实现删除

Vue 多选框实现删除功能 实现多选框删除功能通常涉及以下关键步骤: 数据绑定与多选框状态管理 在 Vue 组件中定义 data 属性存储选项列表和选中项的 ID 数组: data() { r…