当前位置:首页 > VUE

vue实现多选和单选

2026-02-23 08:32:00VUE

Vue 实现单选功能

使用 v-model 绑定单选按钮组,确保同一组单选按钮的 name 属性相同。通过绑定同一个变量实现互斥选择。

<template>
  <div>
    <label>
      <input type="radio" v-model="selectedOption" value="option1">
      Option 1
    </label>
    <label>
      <input type="radio" v-model="selectedOption" value="option2">
      Option 2
    </label>
    <label>
      <input type="radio" v-model="selectedOption" value="option3">
      Option 3
    </label>
    <p>Selected: {{ selectedOption }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: ''
    }
  }
}
</script>

Vue 实现多选功能

使用 v-model 绑定到数组实现多选功能,通过 value 属性确定选中项的值。

<template>
  <div>
    <label>
      <input type="checkbox" v-model="selectedOptions" value="option1">
      Option 1
    </label>
    <label>
      <input type="checkbox" v-model="selectedOptions" value="option2">
      Option 2
    </label>
    <label>
      <input type="checkbox" v-model="selectedOptions" value="option3">
      Option 3
    </label>
    <p>Selected: {{ selectedOptions }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOptions: []
    }
  }
}
</script>

使用组件库实现选择功能

Element UI 提供了单选和多选组件,简化开发流程。

单选示例:

<template>
  <el-radio-group v-model="radio">
    <el-radio :label="1">Option 1</el-radio>
    <el-radio :label="2">Option 2</el-radio>
    <el-radio :label="3">Option 3</el-radio>
  </el-radio-group>
</template>

<script>
export default {
  data() {
    return {
      radio: 1
    }
  }
}
</script>

多选示例:

<template>
  <el-checkbox-group v-model="checkList">
    <el-checkbox label="Option 1"></el-checkbox>
    <el-checkbox label="Option 2"></el-checkbox>
    <el-checkbox label="Option 3"></el-checkbox>
  </el-checkbox-group>
</template>

<script>
export default {
  data() {
    return {
      checkList: []
    }
  }
}
</script>

动态渲染选项

从接口获取数据动态渲染单选或多选选项。

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

<script>
export default {
  data() {
    return {
      options: [
        { value: 'opt1', label: 'Option 1' },
        { value: 'opt2', label: 'Option 2' },
        { value: 'opt3', label: 'Option 3' }
      ],
      selectedOptions: []
    }
  }
}
</script>

表单验证

结合 Vue 的表单验证功能,确保必填项已选择。

vue实现多选和单选

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

    <el-form-item label="多选" prop="checks">
      <el-checkbox-group v-model="form.checks">
        <el-checkbox label="A"></el-checkbox>
        <el-checkbox label="B"></el-checkbox>
      </el-checkbox-group>
    </el-form-item>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      form: {
        radio: '',
        checks: []
      },
      rules: {
        radio: [
          { required: true, message: '请选择', trigger: 'change' }
        ],
        checks: [
          { type: 'array', required: true, message: '至少选择一项', trigger: 'change' }
        ]
      }
    }
  }
}
</script>

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

相关文章

vue 实现表格单选

vue 实现表格单选

实现表格单选的基本思路 在Vue中实现表格单选功能,通常需要结合表格组件(如el-table)和数据绑定。核心逻辑是通过点击事件更新当前选中行的唯一标识(如id),并通过:class或:style绑定…

vue实现li多选

vue实现li多选

Vue 实现列表多选功能 在 Vue 中实现列表(<li>)的多选功能可以通过多种方式完成。以下是几种常见的实现方法: 使用 v-model 绑定数组 通过 v-model 绑定一个数组…

vue实现单选多选

vue实现单选多选

Vue 实现单选功能 使用 v-model 绑定单选按钮的值,确保同一组单选按钮的 name 属性相同。 <template> <div> <label&g…

vue实现多选全选

vue实现多选全选

Vue 实现多选全选功能 数据准备 在 Vue 中实现多选全选功能,需要准备两个关键数据:items(待选项列表)和selectedItems(已选项列表)。items通常从后端 API 获取或前端静…

vue实现多选列表

vue实现多选列表

Vue 实现多选列表的方法 使用 v-model 绑定数组 在 Vue 中,可以利用 v-model 指令绑定一个数组来实现多选功能。当用户选择多个选项时,选中的值会自动添加到数组中。 <te…

vue 实现按钮多选

vue 实现按钮多选

实现按钮多选功能 在Vue中实现按钮多选功能可以通过以下方法完成,主要依赖v-model绑定数组和v-for动态渲染按钮。 数据绑定与渲染 定义一个数组selectedItems用于存储选中的按钮值…