当前位置:首页 > VUE

vue实现多选框

2026-02-20 00:11:52VUE

Vue 实现多选框的方法

在 Vue 中实现多选框可以通过多种方式,以下是几种常见的实现方法。

使用 v-model 绑定数组

Vue 的 v-model 可以绑定到一个数组,用于收集多选框的选中值。每个多选框的 value 属性会被添加到数组中。

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

<script>
export default {
  data() {
    return {
      options: [
        { value: 'option1', label: '选项1' },
        { value: 'option2', label: '选项2' },
        { value: 'option3', label: '选项3' },
      ],
      selectedOptions: [],
    };
  },
};
</script>

使用 true-valuefalse-value

如果需要自定义多选框选中和未选中时的值,可以使用 true-valuefalse-value

vue实现多选框

<template>
  <div>
    <input
      type="checkbox"
      v-model="checked"
      :true-value="'选中'"
      :false-value="'未选中'"
    />
    <p>状态: {{ checked }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      checked: '未选中',
    };
  },
};
</script>

动态生成多选框组

结合 v-for 动态生成多选框组,适用于选项从后端获取的场景。

<template>
  <div>
    <label v-for="item in items" :key="item.id">
      <input
        type="checkbox"
        v-model="selectedItems"
        :value="item.id"
      />
      {{ item.name }}
    </label>
    <p>选中的项目: {{ selectedItems }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, name: '项目1' },
        { id: 2, name: '项目2' },
        { id: 3, name: '项目3' },
      ],
      selectedItems: [],
    };
  },
};
</script>

使用计算属性处理选中状态

通过计算属性对多选框的选中状态进行逻辑处理。

vue实现多选框

<template>
  <div>
    <label v-for="fruit in fruits" :key="fruit.id">
      <input
        type="checkbox"
        v-model="selectedFruits"
        :value="fruit.id"
      />
      {{ fruit.name }}
    </label>
    <p>选中的水果: {{ selectedFruitNames }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      fruits: [
        { id: 1, name: '苹果' },
        { id: 2, name: '香蕉' },
        { id: 3, name: '橙子' },
      ],
      selectedFruits: [],
    };
  },
  computed: {
    selectedFruitNames() {
      return this.fruits
        .filter(fruit => this.selectedFruits.includes(fruit.id))
        .map(fruit => fruit.name);
    },
  },
};
</script>

使用第三方组件库

如果需要更丰富的功能,可以使用第三方组件库如 Element UI、Vuetify 或 Ant Design Vue。

以 Element UI 为例:

<template>
  <el-checkbox-group v-model="checkedCities">
    <el-checkbox v-for="city in cities" :label="city" :key="city">{{ city }}</el-checkbox>
  </el-checkbox-group>
</template>

<script>
export default {
  data() {
    return {
      cities: ['上海', '北京', '广州', '深圳'],
      checkedCities: [],
    };
  },
};
</script>

以上方法覆盖了从基础到进阶的多选框实现方式,可以根据实际需求选择合适的方法。

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

相关文章

vue实现点击页面切换

vue实现点击页面切换

实现点击页面切换功能 在Vue中实现点击页面切换功能,可以通过路由跳转或组件动态渲染两种方式完成。以下是具体实现方法: 使用Vue Router实现页面跳转 安装Vue Router后,在项目中配置…

vue聊天实现

vue聊天实现

Vue 聊天应用实现步骤 创建 Vue 项目 使用 Vue CLI 或 Vite 初始化项目,安装必要依赖(如 Vue 3、Element UI 或 Vuetify 用于 UI 组件)。 npm c…

vue实现后退

vue实现后退

Vue 实现后退功能的方法 在 Vue 中实现后退功能通常可以通过以下几种方式完成,具体取决于应用场景和需求。 使用 window.history API 通过原生 JavaScript 的 win…

vue交互实现

vue交互实现

Vue 交互实现方法 Vue.js 提供了多种方式实现用户交互,包括事件处理、表单绑定、动态渲染等。以下是常见的交互实现方法: 事件处理 通过 v-on 或 @ 指令绑定事件,触发方法或直接执行表达…

vue实现同步

vue实现同步

Vue 实现同步的方法 在 Vue 中实现同步操作通常涉及数据绑定、状态管理和异步操作的处理。以下是几种常见的方法: 使用计算属性(Computed Properties) 计算属性基于响应式依赖进…

vue实现逻辑

vue实现逻辑

Vue 实现逻辑的核心概念 Vue.js 是一个渐进式 JavaScript 框架,其核心逻辑围绕数据驱动和组件化开发。通过响应式系统、虚拟 DOM 和组件生命周期等机制,Vue 实现了高效的前端开发…