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.rhkb.cn/news/410975.html

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

相关文章

Wordpress 6.x 修改文件上传大小限制

1. 安装并启用Big File Uploads插件 插件 → 安装新插件 媒体→添加文件 修改后Save保存 2. 修改Nginx配置文件 # 我的配置在wordpress.conf文件中 vim /etc/nginx/conf.d/wordpress.conf 在server节点中加入下面这句配置 # 文件上传大小限制 client_max_body_size 500M;# 重…

xss-labs通关攻略 11-15关

第十一关&#xff1a;less-11 步骤一&#xff1a;利用burp抓包 步骤二&#xff1a;添加referer:click me!" type"button" οnmοuseοver"alert(/xss/)进行放包 第十二关&#xff1a;less-12 步骤一&#xff1a;利用burp抓包 步骤二&#xff1a;修改User A…

java 中的设计模式

文章目录 一、前言二、设计模式的分类三、设计模式的原则1、开闭原则&#xff08;Open Close Principle&#xff09;2、里氏代换原则&#xff08;Liskov Substitution Principle&#xff09;3、依赖倒转原则&#xff08;Dependence Inversion Principle&#xff09;4、接口隔离…

【计算机系统架构】从0开始构建一台现代计算机|时序逻辑、主存储器|第2章

博主简介&#xff1a;努力学习的22级计算机科学与技术本科生一枚&#x1f338;博主主页&#xff1a; Yaoyao2024往期回顾&#xff1a; 【计算机系统架构】从0开始构建一台现代计算机|二进制、布尔运算和ALU|第2章每日一言&#x1f33c;: 孤独和喧嚣都令人难以忍受。如果一定要忍…

参会投稿 | 第三届先进传感与智能制造国际学术会议(ASIM 2024)

第三届先进传感与智能制造国际会议&#xff08;The 3rd International Conference on Advanced Sensing, Intelligent Manufacturing&#xff09;&#xff0c;由江汉大学、西安交通大学和山东大学主办&#xff0c;由江西省机械工程学会、东华理工大学机械与电子工程学院等联合协…

iPhone突然黑屏?别慌,这里有你的自救指南

在日常使用iPhone的过程中&#xff0c;不少用户可能会遇到手机突然黑屏的情况&#xff0c;这往往让人措手不及。别担心&#xff0c;今天我们就来详细探讨一下iPhone突然黑屏的可能原因及解决方法&#xff0c;帮助你快速恢复手机的正常使用。 一、iPhone突然黑屏的可能原因 1. …

IPD+敏捷高级训战盛典(上海站)圆满落幕,引领创新管理新纪元

在金秋送爽的八月末&#xff0c;翰德恩咨询精心筹备的为期两日的“IPD敏捷高级训战盛典&#xff08;上海站&#xff09;”于24日至25日璀璨落幕&#xff0c;标志着一场汇聚行业精英、融合前沿管理智慧的盛宴圆满收官。此次盛典不仅是知识的碰撞与交融&#xff0c;更是企业转型升…

序列化组件对比

1、msgpack介绍 1.MsgPack产生的数据更小&#xff0c;从而在数据传输过程中网络压力更小 2.MsgPack兼容性差&#xff0c;必须按照顺序保存字段 3.MsgPack是二进制序列化格式&#xff0c;兼容跨语言 官网地址&#xff1a; https://msgpack.org/ 官方介绍&#xff1a;Its lik…

ST表(区间查询

解决的问题&#xff1a; 数组区间查询最大值和最小值对于解决数组的树状数组的区间修改 ------- 线段树倍增思想 核心代码&#xff1a; #include<bits/stdc.h> using namespace std; const int N1e5; int num[N]; int f[N][N]; int main(){int n;cin>>n;//输入默…

Vue 2.x时间转换为北京时间(+8)

文章目录 当前时间格式效果图理想时间格式效果图转换方法总结 当前时间格式效果图 非中国常用时间格式&#xff0c;在上图中给可以看到&#xff0c;选择的时间为&#xff1a;2024-8-26 ~ 2024-8-27&#xff0c;返回结果却是&#xff1a;2024-08-25TXX:XX:XXZ&#xff0c;明显不…

最大噪音值甚至受法规限制,如何基于LBM算法有效控制风扇气动噪音

风扇的气动噪声 在工业设备行业&#xff0c;最大噪音值受法规限制。在很多使用风扇冷却的设备上&#xff0c;风扇噪声通常是这些设备工作噪声的最大贡献量。而在家电民用行业&#xff0c;例如空调、空气净化器、油烟机等&#xff0c;其噪音大小直接关系到用户的体验感受&#x…

实现并发网络服务器

一&#xff0c;网络服务器 1.单循环网络服务器 —— 同一时刻只能处理一个客户端任务 2.并发服务器 —— 同一时刻能处理多个客户端任务 二&#xff0c;并发服务器 1.多线程 2.IO多路复用 3.多进程 三&#xff0c;IO模型 1.阻塞IO 阻塞IO&#xff08;Blocking IO&…

SQLi-LABS通关攻略【41-45】

SQLi-LABS 41关 这一关是堆叠注入 测试闭合 ?id1 //回显错误 ?id1-- //回显错误 ?id1-- //回显正确 所以是数字型的注入 测试堆叠注入&#xff0c;更改Dumb的密码 ?id1;update users set password123456 where usernameDumb-- SQLi-…

不会PS怎么快速抠图?试试这3种方法,抠图干净又高效!

我就不信每个人都会用PS抠图&#xff01;&#xff01; 关于抠图技巧&#xff0c;前面高赞已经分享了好多&#xff0c;但&#xff0c;我还是忍不住想向所有小白推荐更“傻瓜式”抠图。 就是那种根本不需要学习就能抠干净的抠图工具&#xff0c;适用于99%的抠图需求&#xff0c…

【数字时序】时钟树延迟偏差——CPPR adjustment

接上一篇文章Innovus的时序报告解读&#xff0c;新版的貌似多了一些信息&#xff0c;比如CPPR Adjustment和Derate。不太清楚这两个是什么概念&#xff0c;搜索之后转载2篇后端工程师的博客如下&#xff1a; 搜到个这个网站好像有很多后端相关的知识点分享一哈&#xff1a; Co…

springboot+vue+mybatis计算机毕业设计电子产品交易系统+PPT+论文+讲解+售后

系统根据现有的管理模块进行开发和扩展&#xff0c;采用面向对象的开发的思想和结构化的开发方法对电子产品交易管理的现状进行系统调查。采用结构化的分析设计&#xff0c;该方法要求结合一定的图表&#xff0c;在模块化的基础上进行系统的开发工作。在设计中采用“自下而上”…

书店销售内部后台管理系统员工信息部门图书入库账目集成分析销售客户

本系统的设计实施为书店管理系统的运行做基础&#xff0c;为书店的管理提供良好的条件。系统主要实现了&#xff1a;员工信息管理、部门管理、图书管理、入库管理、账目集成分析、销售管理、客户管理。 2.1系统开发工具 本系统主要使用JSP技术对系统进行设计和开发。JSP拥有Jav…

上书房信息咨询:医疗满意度调研

随着人们生活水平的不断提高&#xff0c;医疗服务的需求日益增长。近期&#xff0c;上书房信息咨询受托完成了某市医疗市场的满意度调研&#xff0c;旨在深入了解市民对医疗服务的评价和需求&#xff0c;为提升医疗服务质量提供有力支持。 近年来&#xff0c;某市致力于推进医…

本地生活本地推软件有哪些?手把手教你从零开始提升转化率!

当前&#xff0c;多家互联网大厂在本地生活版块的布局不断深入&#xff0c;让本地生活市场不断焕发新活力的同时&#xff0c;也使得竞争态势日益激烈。在此背景下&#xff0c;对于本地生活服务商而言&#xff0c;无论是想要拓展品牌商家资源&#xff0c;还是想要改善交付效果&a…

Java毕业设计 基于SpringBoot vue药店管理系统

Java毕业设计 基于SpringBoot vue药店管理系统 SpringBoot 药店管理系统 功能介绍 管理员 登录 修改个人资料 密码修改 门店管理 销售业绩 药品管理 进货管理 库存管理 会员管理 员工管理 店长 登录 修改个人资料 密码修改 销售业绩 药品管理 进货管理 库存管…