当前位置:首页 > VUE

vue实现复选功能

2026-03-08 08:10:01VUE

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: 'apple', label: '苹果' },
        { value: 'banana', label: '香蕉' },
        { value: 'orange', label: '橙子' }
      ],
      selectedOptions: []
    }
  }
}
</script>

动态生成复选框

如果需要从接口获取选项数据,可以通过动态渲染实现:

vue实现复选功能

<template>
  <div>
    <label v-for="item in dynamicOptions" :key="item.id">
      <input 
        type="checkbox" 
        v-model="dynamicSelected" 
        :value="item.id"
      >
      {{ item.name }}
    </label>
  </div>
</template>

<script>
export default {
  data() {
    return {
      dynamicOptions: [],
      dynamicSelected: []
    }
  },
  async created() {
    const response = await fetch('https://api.example.com/options');
    this.dynamicOptions = await response.json();
  }
}
</script>

全选/反选功能

通过计算属性和方法实现全选逻辑:

vue实现复选功能

<template>
  <div>
    <label>
      <input 
        type="checkbox" 
        @change="toggleAll"
        :checked="isAllSelected"
      >
      全选
    </label>
    <div v-for="item in items" :key="item.id">
      <input 
        type="checkbox" 
        v-model="selectedItems" 
        :value="item.id"
      >
      {{ item.name }}
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, name: '选项1' },
        { id: 2, name: '选项2' },
        { id: 3, name: '选项3' }
      ],
      selectedItems: []
    }
  },
  computed: {
    isAllSelected() {
      return this.selectedItems.length === this.items.length;
    }
  },
  methods: {
    toggleAll() {
      this.selectedItems = this.isAllSelected 
        ? [] 
        : this.items.map(item => item.id);
    }
  }
}
</script>

使用第三方组件

对于更复杂的需求,可以使用如 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>

表单提交处理

在表单提交时处理选中的值:

<template>
  <form @submit.prevent="handleSubmit">
    <div v-for="skill in skills" :key="skill.id">
      <input 
        type="checkbox" 
        v-model="formData.skills" 
        :value="skill.id"
      >
      {{ skill.name }}
    </div>
    <button type="submit">提交</button>
  </form>
</template>

<script>
export default {
  data() {
    return {
      skills: [
        { id: 1, name: 'Vue' },
        { id: 2, name: 'React' },
        { id: 3, name: 'Angular' }
      ],
      formData: {
        skills: []
      }
    }
  },
  methods: {
    handleSubmit() {
      console.log('提交数据:', this.formData);
      // 发送到API...
    }
  }
}
</script>

标签: 复选功能
分享给朋友:

相关文章

vue实现注册功能

vue实现注册功能

实现注册功能的基本步骤 在Vue中实现注册功能通常需要结合前端表单和后端API交互。以下是常见的实现方式: 创建注册表单组件 <template> <div class="re…

h5能实现的功能

h5能实现的功能

H5能实现的功能 H5(HTML5)是一种现代的网页技术标准,具备丰富的功能和特性,适用于多种场景。以下是H5能够实现的主要功能: 多媒体支持 H5原生支持音频和视频播放,无需依赖Flash等插件。…

uniapp支付功能怎么实现

uniapp支付功能怎么实现

uniapp支付功能实现方法 准备工作 注册微信支付、支付宝等平台的开发者账号,获取必要的商户ID(mch_id)、API密钥(key)、应用ID(appid)等信息。确保项目已配置好相关支付SDK。…

php怎么实现登录功能

php怎么实现登录功能

数据库准备 创建用户表存储登录信息,通常包括用户名、密码(需加密)等字段。示例SQL: CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY…

php秒杀功能的实现

php秒杀功能的实现

秒杀功能的核心设计 高并发场景下秒杀系统的核心在于解决超卖问题和性能瓶颈。需要结合缓存、队列、锁机制等技术实现。 数据库设计 商品表需包含库存字段,例如: CREATE TABLE `seckil…

js实现 功能

js实现 功能

在 JavaScript 中实现功能通常涉及多个关键步骤,具体取决于功能需求。以下是常见功能的实现方法和示例: 基本功能实现 使用函数封装逻辑是最直接的方式。例如,实现一个计算两数之和的函数: f…