首页/新闻资讯/正文详情

微信小程序实验:checkbox和radio组件

发布时间:2026/9/24 17:48:23 来源:云帆数科 栏目:资讯中心
微信小程序实验:checkbox和radio组件
在微信小程序开发中checkbox多选框、radio单选框是非常常用表单组件必须配合checkbox‑group、radio‑group分组容器使用才能正常监听变化事件。本文通过《满江红》动态文本样式编辑器案例讲解多选、单选组件事件机制、行内动态样式绑定实现字体加粗、斜体、下划线、字体大小实时切换最后完成作业扩展新增 30rpx 字号选项。开发环境微信开发者工具不使用云服务、不使用模板关闭 skyline 渲染引擎。关键词微信小程序checkbox‑groupradio‑group动态样式表单组件一、案例需求实现诗词文本样式编辑器页面展示《满江红・写怀》诗词标题红色居中。多选功能checkbox提供加粗、倾斜、下划线三个复选框可以任意多选勾选后诗词文本实时生效对应样式。单选功能radio提供字体大小选项只能选择一个切换选项立刻修改文字字号作业扩展新增30rpx字号。文本段落需要首行缩进text‑indent:2em⚠️skyline渲染引擎不支持该样式需要在app.json删除renderer:skyline配置。二、核心知识点1. checkbox‑group checkbox多选checkbox必须放到checkbox‑group标签内绑定bindchange事件单独 checkbox 无法触发 change 回调。事件回调e.detail.value返回数组数组里面存放所有勾选的 checkbox 的value属性。可以同时勾选多个选项。2. radio‑group radio单选radio必须放到radio‑group标签内绑定bindchange事件。事件回调e.detail.value返回单个字符串代表当前选中 radio 的value。同一分组内只能选中一项checkedtrue设置页面默认选中项。3. 小程序动态行内样式stylefont-weight:{{myBold}};font-style:{{myItalic}}小程序不能直接操作 DOM 元素通过{{}}数据绑定js 使用setData修改 data 变量页面样式自动更新。注意行内样式多个属性使用分号;隔开。三、完整项目代码3.1 app.json{ pages: [ pages/index/index ], window: { navigationBarTextStyle: black, navigationStyle: custom }, style: v2, renderer: webview }3.2 pages/index/index.wxml 页面结构!--index.wxml-- navigation-bar titlecheckbox 和 radio 组件 back{{false}} colorblack background#FFF/navigation-bar scroll-view classscrollarea scroll-y typelist view classbox view classtitle满江红·写怀/view !--动态绑定字体样式加粗、斜体、下划线、字号-- view classtxt stylefont-weight:{{myBold}};font-style:{{myItalic}};text-decoration:{{myUnderline}};font-size:{{myFontSize}}; view 怒发冲冠凭栏处、潇潇雨歇。抬望眼、仰天长啸壮怀激烈。三十功名尘与土八千里路云和月。莫等闲、白了少年头空悲切。 /view view 靖康耻犹未雪。臣子恨何时灭。驾长车踏破贺兰山缺。壮志饥餐胡虏肉笑谈渴饮匈奴血。待从头、收拾旧山河朝天阙。 /view /view view classother !--多选框组checkbox‑group绑定change事件-- checkbox-group bindchangecheckboxChange checkbox valueisBold加粗 /checkbox checkbox valueisItalic倾斜/checkbox checkbox valueisUnderline下划线 /checkbox /checkbox-group !--单选框组radio‑group作业新增30rpx选项-- radio-group bindchangeradioChange radio value30rpx30rpx/radio radio value40rpx40rpx/radio radio value50rpx checkedtrue50rpx/radio radio value60rpx60rpx/radio /radio-group /view /view /scroll-view3.3 app.wxss 全局公共样式/**app.wxss**/ .box { /* 设置外边距 */ margin: 20rpx; /* 设置内边距 */ padding: 20rpx; /* 设置边框 */ border: 2rpx solid silver; } .title { /* 设置字体大小 */ font-size: 40rpx; /* 设置字体加粗 */ font-weight: bolder; /* 设置居中对齐 */ text-align: center; /* 设置下外边距 */ margin-bottom: 30rpx; /* 设置字体颜色 */ color: red; }3.4 pages/index/index.wxss 页面局部样式/**index.wxss**/ page { height: 100vh; display: flex; flex-direction: column; } .scrollarea { flex: 1; overflow-y: hidden; } radio, checkbox { margin: 20rpx; } .txt { /* 设置文本两端对齐 */ text-align: justify; text-indent: 2em; margin: 60rpx 0; } .other { text-align: center; margin: 60rpx 0; }3.5 pages/index/index.js 业务逻辑// index.js Page({ data: { myFontSize: 50rpx, myBold: , myItalic: , myUnderline: }, /** * checkbox‑group组件事件函数 */ checkboxChange(e) { console.log(e); // 定义存放checkbox‑group所有选中项数组 let selected [] let myBold let myItalic let myUnderline // 获取checkbox‑group中的所有选中项数组 selected e.detail.value // 循环遍历所有选中项 for (let index 0; index selected.length; index) { const element selected[index]; if (element isBold) { myBold bold } if (element isItalic) { myItalic italic } if (element isUnderline) { myUnderline underline } } // 更新数据驱动视图 this.setData({ myBold, myItalic, myUnderline }) }, /** * radio‑group组件事件函数 */ radioChange(e) { console.log(e); this.setData({ myFontSize: e.detail.value }) } })四、程序运行流程页面初始化myFontSize50rpx默认选中 50rpx加粗、斜体、下划线全部为空文本原始样式展示。用户勾选 / 取消多选框触发checkboxChange事件。e.detail.value拿到全部勾选项组成的数组循环数组判断勾选哪些选项给样式变量赋值没有勾选则变量为空字符串样式不生效。setData更新 data 数据页面行内 style 绑定变量自动刷新文本样式。用户切换 radio 单选按钮触发radioChangee.detail.value直接拿到字号字符串赋值给myFontSize字体大小立刻改变。作业扩展30rpx选项只需要增加一条 radio 标签js 代码无需修改复用原有radioChange逻辑。五、踩坑记录❌直接单独使用 checkbox/radio不包裹在 group 组件bindchange 事件不会触发拿不到选中值。❌app.json 保留renderer:skylinetext‑indent首行缩进样式失效排版错乱。❌混淆 checkbox 与 radio 返回值checkbox 返回数组radio 返回单个字符串。❌行内 style 多个 css 属性忘记加分号样式解析失效。❌没有选中任何 checkbox 时e.detail.value是空数组循环不会执行样式变量保持空字符串文本恢复原始样式。六、总结checkbox、radio 组件不能脱离checkbox‑group、radio‑group分组容器使用分组容器负责监听组内选项变化。多选返回数组单选返回字符串这是两个组件最核心区别。小程序动态样式依靠数据绑定 setData 实现不要尝试 DOM 操作。新增 radio 选项时只需要新增 radio 标签value 设置对应字号原有 js 逻辑完全复用扩展性好。

相关推荐

03-记忆迁移
03-记忆迁移

记忆导入导出 · 2026/9/24 17:48:22

linux中文编程之一入门008
linux中文编程之一入门008

· 2026/9/24 17:48:04

16:Python语法-字符串str
16:Python语法-字符串str

一、字符串1、一个字符串可以存放任意数量的字符。如:"hello" cwc """vwerv"""。2、字符串是有序的,每个字符都有其对应的下标,与列表一致。3、字符串不可变、有序、可遍历。二、字符串切片与列表切… · 2026/9/24 17:47:58

Link入门全解:网页新标签打开、网络链路聚合与PLC通信协议
Link入门全解:网页新标签打开、网络链路聚合与PLC通信协议

做技术这行久了你会发现,很多基础概念翻来覆去就那么点东西,但每次重新回头去理解,又总能有新的收获。“Link”这个词就是典型,它算得上是我入行以来接触频率最高的词之一,但不同场景下它代表的东西完全不一样——前端… · 2026/9/24 18:45:38

Python气象时间序列预测实战:降雨量建模与工程化部署
Python气象时间序列预测实战:降雨量建模与工程化部署

简介:本资源是一个面向高校课程设计与Python后端开发初学者的降雨量预测实践项目,聚焦时间序列分析在气象预测中的落地应用,解决农业灌溉规划、气象预警等实际场景下的短期降雨趋势预判问题。压缩包为ZIP格式,大小42.49MB&#xf… · 2026/9/24 18:45:38

AI学术全流程实战:从文献综述到答辩PPT,提示词与部署排错指南
AI学术全流程实战:从文献综述到答辩PPT,提示词与部署排错指南

上周帮一个研三的学弟过开题材料,他跟我抱怨:AI工具他一直在用,翻译文献、润色语句、查语法,样样都试过,可真到了写综述、搭方案、做答辩PPT的时候,还是抓瞎。我问他怎么不用AI继续帮忙,他说“每… · 2026/9/24 18:45:38

无线网络仿真从入门到实战:信道建模与工具选型全解析
无线网络仿真从入门到实战:信道建模与工具选型全解析

1. 仿真思路拆解:为什么无线网络离不开仿真做无线网络这么多年,我越来越觉得网络仿真不是“锦上添花”的选修课,而是必修课。真实环境里你不可能为了验证一个组网方案,专门去买几十台AP、搭一整套AC、再拉几条专线做测试&#xff… · 2026/9/24 18:45:25

Spring Boot + Vue3 + MinIO 大文件分片上传实战:直传、断点续传与秒传
Spring Boot + Vue3 + MinIO 大文件分片上传实战:直传、断点续传与秒传

我接手过好几个类似需求的项目,从早期做后台管理系统开始就一直在跟文件上传打交道。以前用传统的MultipartFile整包上传,文件小的时候还行,一旦涉及到几百MB甚至几个GB的视频、压缩包、数据库备份文件,问题就全冒出来了&#xff… · 2026/9/24 18:45:25

Linux命令行删除全攻略:从输入纠错到卸载软件一次讲透
Linux命令行删除全攻略:从输入纠错到卸载软件一次讲透

说句实话,第一次在群里看到“在Linux中如何删除命令行?”这个问题的时候,我以为对方在开玩笑。毕竟命令行是Linux里最核心的交互入口,哪有人会想把它“删掉”?可后来聊了几句才明白,新手们说的“删除命令行… · 2026/9/24 18:45:25

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码