uniapp(微信小程序如何使用单选框、复选框)

一、先看效果

二、数据结构

说明:selected用来记录每次用户选择的值,当是单选的时候属性中的selected属性需要设置成字符串,当是复选框的时候,此时选择的是数组,selected属性应设置为数组。type用来区分当前是单选还是复选。disabled属性是配合组件使用的,意思是是否禁用该选项,name属性用来将选项渲染给用户看,_name是根据我自己的业务需求设计的,我的需求是记录用户选择的每个选项,我需要根据用户的选项在表单上进行定位,最终生成pdf文件。(此处根据自己的需求进行设计)

	a: [{id: 1,quesName: '1.是否取得营业执照',checkboxList: [{name: '是',disabled: false,_name: '是'},{name: '否',disabled: false,_name: '否'}],type: 'radio',selected: ''},{id: 2,quesName: '2.是否开展广告活动',checkboxList: [{name: '是',disabled: false,_name: '是_1'},{name: '否',disabled: false,_name: '否_1'}],type: 'radio',selected: ''},{id: 3,quesName: '3.广告活动主体类型',checkboxList: [{name: '广告主',disabled: false,_name: '广告主'},{name: '广告经营者',disabled: false,_name: '广告经营者'},{name: '广告发布者',disabled: false,_name: '广告发布者'},{name: '广告代言人',disabled: false,_name: '广告代言人'}],type: 'checkbox',selected: []},{id: 4,quesName: '4.广告活动媒介',checkboxList: [{name: '电视',disabled: false,_name: '电视'},{name: '广播',disabled: false,_name: '广播'},{name: '报纸',disabled: false,_name: '报纸'},{name: '期刊',disabled: false,_name: '期刊'},{name: '户外',disabled: false,_name: '户外'},{name: '印刷品',disabled: false,_name: '印刷品'},{name: '互联网(其中:互联网门户网站',disabled: false,_name: '互联网门户网站'},{name: '搜索引擎平台',disabled: false,_name: '搜索引擎平台'},{name: '电子商务平台',disabled: false,_name: '电子商务平台'},{name: '其他)',disabled: false,_name: '其他'}],type: 'checkbox',selected: []}]

三、html骨架

此处使用了u-view组件中的u-radio和u-checkbox,此处需要注意样式,因为这个默认样式不美观,自己需要调整,css调整方法可以外部引入一个css文件,这种可以改变默认样式,其他方式自己探索。

		<!-- 单选框、复选框表单 --><view v-for="(item, index) in a" :key="item.id"><view class="quName">{{ item.quesName }}</view><u-radio-group v-if="item.type == 'radio'" v-model="item.selected" placement="row" @change="(value) => checkboxChange(value, item.id)"><u-radio:customStyle="{ marginLeft: '8px' }"v-for="(items, indexs) in item.checkboxList":key="indexs":label="items.name":name="items._name":disabled="items.disabled"></u-radio></u-radio-group><u-checkbox-group v-else v-model="item.selected" placement="row" @change="(value) => checkboxChange(value, item.id)"><u-checkbox:customStyle="{ marginLeft: '8px' }"style="margin-top: 5px"v-for="(items, indexs) in item.checkboxList":key="indexs":label="items.name":name="items._name":disabled="items.disabled"></u-checkbox></u-checkbox-group></view>

此处需要重点讲解@change="(value) => checkboxChange(value, item.id)"函数,该组件change函数默认是返回一个值,那就是当前用户选择的值,我们需要将用户选择的值设置到数据结构中的selected属性中,此处很多人可能会用一个疑惑,为什么在设置多选框的时候,是怎么将用户选择的值设置到对应的selected熟悉中呢,此处组件已经完美解决了这个问题,我们每次勾选多选框中的时候,每次触发checkboxChange函数的时候,返回的是一个数组,你勾选几个值就返回当前你勾选的值,这个值是一个数组,每次会根据当前题目的id赋值到对应的selected中去。

		checkboxChange(value, id) {this.a = this.a.map((item) => {if (item.id == id) {return { ...item, selected: value };}return item;});console.log(value, id);},

四、过滤数据

此处需要将用户选择的非空选项对应的_name值记录到一个数组中去

			let quesAndSeleted = [];this.a.map((item) => {if (Array.isArray(item.selected)) {quesAndSeleted = quesAndSeleted.concat(item.selected);} else {quesAndSeleted.push(item.selected);}});//数据过滤this.form.quesAndSeleted = quesAndSeleted.filter(item=>item!==null && item!==undefined && item!=="");

五、改变样式

在你自己的页面中导入import ‘…/…/…/css/form.css’;(为什么选择外部引入css呢?因为内部我尝试了修改不生效,可能需要使用css渗透,懒得试了)

form.css文件.u-radio-group--row.data-v-97ce24d6 {margin-top: 10px;
}
.u-checkbox-group--row.data-v-2ef8bac9 {display: flex;flex-direction: row;flex-wrap: wrap;/* margin-top: 10px; */
}
.data-v-c4a74aee{margin-top: 3px;
}.u-button--square.data-v-2bf0e569 {border-bottom-left-radius: 3px;border-bottom-right-radius: 3px;border-top-left-radius: 3px;border-top-right-radius: 3px;margin-bottom: 10px;width: 90vw;margin-top: 10px;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/52678.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++ Qt day3】

2、设计一个Per类&#xff0c;类中包含私有成员:姓名、年龄、指针成员身高、体重&#xff0c;再设计一个Stu类&#xff0c;类中包含私有成员:成绩、Per类对象p1&#xff0c;设计这两个类的构造函数、析构函数和拷贝构造函数。

PTA L1-027 出租

L1-027 出租&#xff08;20分&#xff09; 下面是新浪微博上曾经很火的一张图&#xff1a; 一时间网上一片求救声&#xff0c;急问这个怎么破。其实这段代码很简单&#xff0c;index数组就是arr数组的下标&#xff0c;index[0]2 对应 arr[2]1&#xff0c;index[1]0 对应 arr[0…

Java的IO模型详解-BIO,NIO,AIO

一、BIO相关知识 Java 的 BIO (Blocking I/O) 模型是基于传统的同步阻塞 I/O 操作。在这种模型中&#xff0c;每个客户端连接都需要一个独立的线程来处理请求。当线程正在执行 I/O 操作时&#xff08;如读取或写入&#xff09;&#xff0c;它会被阻塞&#xff0c;直到操作完成…

【读点论文】Scene Text Detection and Recognition: The Deep Learning Era

Scene Text Detection and Recognition: The Deep Learning Era Abstract 随着深度学习的兴起和发展&#xff0c;计算机视觉发生了巨大的变革和重塑。场景文本检测与识别作为计算机视觉领域的一个重要研究领域&#xff0c;不可避免地受到了这波革命的影响&#xff0c;从而进入…

Golang | Leetcode Golang题解之第376摆动序列

题目&#xff1a; 题解&#xff1a; int wiggleMaxLength(int* nums, int numsSize) {if (numsSize < 2) {return numsSize;}int prevdiff nums[1] - nums[0];int ret prevdiff ! 0 ? 2 : 1;for (int i 2; i < numsSize; i) {int diff nums[i] - nums[i - 1];if ((…

TD学习笔记————中级教程总结(NEW)

目录 Instance功能讲解 问题&#xff1a; 报错All ops must generate the same number of instances (have the same length Replicator功能讲解 问题&#xff1a; 视频分辨率过大 Cannot find function named:onValueChange Instance功能讲解 数据通道的长度要一致 N…

安泰功率放大器应用领域:MEMS传感器的应用有哪些

功率放大器的应用领域很广泛&#xff0c;从超声测试、材料测试、水声测试再到压电驱动、电磁驱动生物医疗&#xff0c;它都能为整个系统提供强劲的激励&#xff0c;同样功率放大器在MEMS传感器系统的激励中也有着良好应用&#xff0c;今天Aigtek安泰电子就带大家走进MEMS传感器…

Hadoop: Mapreduce了解

目录 1.MapReduce概述 2.MapReduce的基本工作原理 2.1.Map阶段 2.1.1.Map源码解析 2.1.2.map端代码总结 2.2.Shuffle and Sort阶段 2.3.Reduce阶段 2.3.1.Reduce源码解析 2.3.2.Reduce端源码总结 3.数据流与任务执行 3.1.数据输入与输出格式 3.1.1.TextInputFormat…

comfyui工作流,动漫转真人,效果炸裂!

在数字媒体制作领域&#xff0c;将动漫风格的图像转换为接近真人风格的视觉效果一直是一个具有挑战性的任务。最近&#xff0c;ComfyUI 推出了一套高级工具和节点系统&#xff0c;极大地简化了这一过程。本文将详细介绍这一工作流的各个组成部分以及其实用性。 工作流核心节点简…

使用腾讯云宝塔面板部署后端项目,包括MySQL,Redis,JDK,Maven

一、购买腾讯云服务器并配置 购买腾讯云的一个服务器服务后进入到如下页面&#xff0c;点击左侧栏服务器&#xff0c;然后点击“重装系统” 选择“使用应用面板”->“宝塔Linux面板”->填写自定义账号和密码->点击确认 二、配置宝塔服务器端口参数并启动 点击确认之…

2024年6月GSEP(C++)一级认证真题讲解

注意&#xff01;做题时长为2小时&#xff0c;孩子做完题目后对照讲解视频和讲解分析&#xff0c;针对薄弱点&#xff0c;进行有效的专项提高。 &#x1f451;讲解视频 &#xff08;暂无&#xff09; &#x1f451;讲解分析 1 单选题&#xff08;每题 2 分&#xff0c;共 3…

sqli-labs靶场通关攻略 46-50

主页有sqli-labs靶场通关攻略 1-45 第四六关 less-46 步骤一&#xff1a;利用报错注入查询库 ?sort1 and updatexml(1,concat(0x7e,database(),0x7e),1) 步骤二&#xff1a;查询表名 ?sort1 and updatexml(1,concat(0x7e,(select group_concat(table_name)from informatio…

WebSocket通信学习笔记

1 简介 WebSocket是一种全双工通信协议&#xff0c;它允许客户端和服务器之间建立持久化的双向连接&#xff0c;从而在不频繁创建HTTP请求的情况下进行实时数据传输。与传统的HTTP协议相比&#xff0c;WebSocket更适合需要实时数据更新的应用场景&#xff0c;如聊天应用、实时…

IDEA没有SQL语句提示

解决已经在IDEA连接数据库&#xff0c;但是写SQL语句不会提示列名、属性之类的 Mapper 映射没有 SQL 提示 设置中搜索&#xff0c;把方言改成 MySQL SQL Dialects

群晖(Docker Compose)配置 frp 服务

为了方便远程电脑&#xff0c;访问自己电脑上的ComfyUI等服务&#xff0c;配置了 frp 服务。 配置 frp 服务后&#xff0c;发现群晖中的一些服务也可以 stcp 安全的暴露出来。 直接在群晖通过 Docker Compose 方式部署 frps 和 frpc&#xff0c;访问者通过 frpc 安全访问暴露…

【机器学习】支持向量机(SVM)的对偶性、核方法以及核技巧

引言 在SVM中&#xff0c;通过引入拉格朗日乘子&#xff0c;可以将原始问题转化为对偶问题&#xff0c;这种转换具有几个重要的优点&#xff0c;包括简化计算和提供更直观的优化问题的解释 文章目录 引言一、支持向量机&#xff08;SVM&#xff09;的对偶性1.1 原始问题&#x…

pacs图像打不开怎么办 --日常工作总结

先强调一下,我不是专门做图像入库和图像归档,我负责的是临床这边的影像,下面是占在我的业务日常分析总结的哈,(不太专业,勿喷) 我们经常会遇到在打开某个检查的时候,出现黑框,日志定位wado服务取不到图 这种情况一般分为 (1) 工作站,工作组,路由,存储卷配置缺失 ---对应的wad…

如何更改 Mac 上 Java 的默认版本?

优质博文&#xff1a;IT-BLOG-CN 第一次运行/usr/libexec/java_home -V将输出类似以下内容&#xff1a; Matching Java Virtual Machines (3): 1.8.0_05, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home 1.6.0_65-b14-4…

安装JKS格式证书

--千金易得 知己难求 本文介绍如何在Tomcat服务器配置JKS格式的SSL证书&#xff0c;具体包括下载和上传证书文件&#xff0c;在Tomcat上配置证书文件和证书密码等参数&#xff0c;以及安装证书后结果的验证。成功配置SSL证书后&#xff0c;您将能够通过HTTPS加密通道安全访问To…

音频检测电路 | 声音传感器模块 | 口哨开关 | Arduino

音频检测电路 | 声音传感器模块 | 口哨开关 | Arduino 案例分析电路设计1. **基本音频检测电路设计**电路结构:2. **灵敏度调节原理**方法:3. **非 MCU 控制的 LED 触发**设计步骤:4. **电路示例**5. **示意图(文本描述)**总结实验方法案例分析 一个硅胶娃娃,挤压或拍打…