程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • 原生微信小程序

  • uniapp多端开发

    • 快速入门

    • 内置组件

      • 视图容器

      • 基础内容

      • 表单组件

        • 按钮组件
        • 复选框组件
          • 1. 什么是 checkbox 组件?
          • 2. checkbox-group 组件的常用属性
            • 2.1 @change 事件
          • 3. checkbox 组件的常用属性
            • 3.1 设置复选框的颜色和大小
          • 4. 复选框组合使用案例
        • 富文本编辑器组件
        • 表单组件
        • 输入框组件
        • 标签组件
        • 选择器组件
        • 嵌入式选择器组件
        • 单选按钮组组件
        • 滑块选择器组件
        • 开关组件
        • 多行输入框组件
      • 路由页面跳转

      • 媒体组件

      • 地图

      • 画布

      • 网页嵌入

      • 页面属性配置节点

      • nvue组件

      • 小程序组件

    • 扩展组件

  • 小程序开发
  • uniapp多端开发
  • 内置组件
  • 表单组件
scholar
2024-10-21
目录

复选框组件

# 复选框组件

checkbox 组件是 Uniapp 中用于实现复选框功能的基础组件。通过 checkbox-group 和 checkbox 组件的组合,可以实现一组复选框的选择功能,用户可以选择多个选项。checkbox 组件具有丰富的属性配置,支持自定义颜色、禁用状态、默认选中等。它也支持跨平台的样式和交互行为。

# 1. 什么是 checkbox 组件?

checkbox 组件用于实现多选功能。用户可以通过复选框选择多个选项,并将选中的值通过事件返回给开发者。复选框通常与 checkbox-group 组件一起使用,checkbox-group 用于包裹一组复选框并管理它们的状态。

使用场景

  • 表单选择:允许用户在多个选项中选择一到多个值,常用于表单中的多选题。
  • 过滤功能:用于商品筛选、内容过滤等功能,用户可以通过复选框选择多个条件进行过滤。
  • 配置设置:用于在设置页面中启用或禁用多项配置。

# 2. checkbox-group 组件的常用属性

checkbox-group 组件用于包裹多个 checkbox 复选框,统一管理它们的状态。当复选框的状态发生变化时,会触发 change 事件,并返回选中的复选框值。

属性名 类型 默认值 说明
@change EventHandle 当选中项发生变化时触发 change 事件,事件参数 detail 返回一个对象 {value: [选中的 checkbox 的 value]}

# 2.1 @change 事件

  • 说明:当 checkbox-group 中的复选框选中项发生变化时,会触发 @change 事件。事件参数会返回一个包含所有选中复选框的 value 数组。
  • 类型:EventHandle
<template>
  <view>
    <!-- checkbox-group 组件包裹一组复选框 -->
    <checkbox-group @change="onCheckboxChange">
      <label>
        <!-- 单个 checkbox 复选框 -->
        <checkbox value="option1" checked /> 选中
      </label>
      <label>
        <checkbox value="option2" /> 未选中
      </label>
    </checkbox-group>
  </view>
</template>

<script setup>
const onCheckboxChange = (e) => {
  // 获取选中的复选框值
  console.log('选中的值:', e.detail.value);
};
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 3. checkbox 组件的常用属性

checkbox 组件是复选框的核心部分,通过配置属性控制其选中状态、禁用状态、颜色等效果。它也支持跨平台的样式自定义,如颜色、大小等。

属性名 类型 默认值 说明 平台差异说明
value String checkbox 的标识值,选中时会触发 checkbox-group 的 change 事件,并携带该 checkbox 的 value。
disabled Boolean false 是否禁用复选框,禁用后复选框无法被点击。
checked Boolean false 当前复选框是否选中。可以用于设置默认选中状态。
color Color 复选框的颜色,同 css 的 color 属性,用于自定义复选框的颜色。
backgroundColor Color #ffffff 复选框默认的背景颜色。 H5(3.99+)、App-Vue(3.99+)
borderColor Color #d1d1d1 复选框默认的边框颜色。 H5(3.99+)、App-Vue(3.99+)
activeBackgroundColor Color #ffffff 复选框选中时的背景颜色。 H5(3.99+)、App-Vue(3.99+)
activeBorderColor Color #d1d1d1 复选框选中时的边框颜色。 H5(3.99+)、App-Vue(3.99+)
iconColor Color #007aff 复选框图标的颜色。 H5(3.99+)、App-Vue(3.99+)

# 3.1 设置复选框的颜色和大小

  • 说明:可以通过 color 属性设置复选框的颜色,通过 style 属性中的 transform: scale 调整复选框的大小。
<template>
  <view>
    <!-- 设置复选框颜色和大小 -->
    <checkbox-group>
      <label>
        <checkbox value="option1" checked color="#FFCC33" style="transform: scale(0.7);" /> 选中
      </label>
      <label>
        <checkbox value="option2" color="#FFCC33" style="transform: scale(0.7);" /> 未选中
      </label>
    </checkbox-group>
  </view>
</template>
1
2
3
4
5
6
7
8
9
10
11
12
13

# 4. 复选框组合使用案例

以下案例展示了 checkbox-group 组件和 checkbox 组件的实际应用,演示了复选框的选中、禁用、颜色和大小设置。通过这些组合,可以实现多选表单、设置选项等功能。

<template>
  <view>
    <!-- 默认样式的复选框 -->
    <view class="uni-padding-wrap uni-common-mt">
      <view class="uni-title uni-common-mt">默认样式</view>
      <checkbox-group>
        <label>
          <checkbox value="option1" checked /> 选中
        </label>
        <label>
          <checkbox value="option2" /> 未选中
        </label>
      </checkbox-group>
    </view>

    <!-- 自定义颜色和尺寸的复选框 -->
    <view class="uni-title uni-common-mt">自定义颜色和尺寸</view>
    <checkbox-group>
      <label>
        <checkbox value="option1" checked color="#FFCC33" style="transform:scale(0.7)" /> 选中
      </label>
      <label>
        <checkbox value="option2" color="#FFCC33" style="transform:scale(0.7)" /> 未选中
      </label>
    </checkbox-group>

    <!-- 使用 uni-list 布局的复选框列表 -->
    <view class="uni-list">
      <checkbox-group @change="onCheckboxChange">
        <label class="uni-list-cell uni-list-cell-pd" v-for="item in items" :key="item.value">
          <view>
            <checkbox :value="item.value" :checked="item.checked" />
          </view>
          <view>{{ item.name }}</view>
        </label>
      </checkbox-group>
    </view>
  </view>
</template>

<script setup>
import { ref } from 'vue';

// 复选框列表数据
const items = ref([
  { value: 'USA', name: '美国' },
  { value: 'CHN', name: '中国', checked: true },
  { value: 'BRA', name: '巴西' },
  { value: 'JPN', name: '日本' },
  { value: 'ENG', name: '英国' },
  { value: 'FRA', name: '法国' }
]);

// 复选框选中项变化时的处理函数
const onCheckboxChange = (e) => {
  const values = e.detail.value;
  items.value.forEach(item => {
    item.checked = values.includes(item.value);
  });
};
</script>

<style scoped>
/* uni-list 布局样式 */
.uni-list-cell {
  justify-content: flex-start;
}
</style>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68

image-20241021015237262

编辑此页 (opens new window)
上次更新: 2025/02/01, 02:18:15
按钮组件
富文本编辑器组件

← 按钮组件 富文本编辑器组件→

Theme by Vdoing | Copyright © 2019-2025 程序员scholar
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式