微信小程序之单选框

news2025/1/11 7:38:08

微信小程序中的单选框(Radio)是一个常用的输入组件,用于在多个选项中进行选择。常见的应用场景有性别选择、选项过滤、问卷调查等。本文将介绍小程序中单选框的特点和作用及相应示例。

一、单选框的特点和作用

特点:

  1. 单一选择:用户只能选择一个选项,适合于互斥项的选择。

  2. 分组显示:单选框通常是一个选项组的形式,多个单选框的组合,一般会有相同的 name 属性,以便在选择时实现互斥效果。

  3. 简洁明了:界面简洁,有助于用户快速阅读和做出选择。

  4. 嵌套性:可以将单选框嵌套在表单、卡片等容器中,适应不同的 UI 设计。

作用:

  • 收集用户选择:用于获取用户的偏好或选择,例如性别、支付方式等。

  • 增强交互性:通过直观的选择方式,提高用户体验和交互性。

  • 表单提交:与其他输入组件配合使用,完成表单数据的收集与提交。

二、简单示例

以下是一个简单的单选框示例,主要实现性别的选择。

1、界面设计

单选框选项组使用<radio-group></radio-group>标签,选项使用<radio></radio>标签,主要的属性为value,代表这个选项,另外还有checkded默认值为false是未选中状态,当值为true时是选中状态。

<view>  
  <label>请选择您的性别:</label>  
  <radio-group>  
    <label class="radio-item">  
      <radio value="male" /> 男  
    </label>  
    <label class="radio-item">  
      <radio value="female" /> 女  
    </label>  
    <label class="radio-item">  
      <radio value="other" /> 其他  
    </label>  
  </radio-group>  
</view>  

2。处理逻辑

处理选择变化函数的主要功能是并通过e.detail.value值获取选中项的值,并使用setData()更新页面变量的值。

Page({  
  data: {  
    selectedGender: ''  
  },  
  
  // 处理选择变化  
  radioChange: function(e) {  
    console.log('选中的性别为:', e.detail.value);  
    this.setData({  
      selectedGender: e.detail.value  
    });  
  }  
});  

三   高级示例

下面的示例是一个简单的测试项目中单选题的处理流程,主要功能是显示多道单选题,等待用户作答,提交后显示答题结果。其最终效果如下所示:

1、界面设计

最终界面刀上所示,详细代码如下:

xml文件主要是双重循环显示,外层循环是循环显示每道单选题,内层循环是在每道单选题内循环显示四个选项。最后在页面下方有一提交按钮,主要功能是提交用户的选择。

wxml 代码

<!--index.wxml-->
<navigation-bar title="单选框" back="{{false}}" color="black" background="#FFF"></navigation-bar>

<view class="container">
  <block wx:for="{{questions}}" wx:key="id">
    <text class="question">{{index+1}}、{{item.question}}</text>
    <radio-group class="options" data-question-id="{{item.id}}" bindchange="handleOptionChange">
      <label class="option"  wx:for="{{item.options}}" wx:key="index">
      <radio value="{{index}}"/> {{item}}
      </label>
    </radio-group>
  </block>
  <button  type= "primary"  bindtap="submitAnswers">提交答案</button>
  <view wx:if="{{submitted}}">
    <text>你提交的答案是:</text>
    <block wx:for="{{questions}}" wx:key="id">
      <text>问题{{item.id}}:{{item.selected || '未选择'}}</text>
    </block>
  </view>
</view>

wxss代码如下:

/**index.wxss**/
.question {
  margin-right: 100px;
  margin-bottom: 20px;
  font-size: 16px;
  font-weight: bold;
}
.options {
  display: flex;
  flex-direction: column;
}
.option {
  margin-right:100px;
  margin-bottom: 10px;
}

button {
  margin-top: 20px;
  margin-bottom: 20px;
}

2、处理逻辑

其处理逻辑为三个部分,其一为预置的试题数组,包含id(试题编号 ),question(刘试题题题干),options(试题选项),selected(选中项的编号)、提交标识符等页面变量。其二为单选按钮组的选项变化函数,主要功能是选获取试题编号、选中项的编号等内容,并及时更新数据。其三是提交函数,主要功能为提交标识符赋值为true,并展开questions数组获取每道题的选中项赋值给answers并在控制台显示。

// index.js
Page({
  data: {
    questions: [
      {
        id: 0,
        question: "1 + 1 等于多少?",
        options: ["A. 1", "B. 2", "C. 3", "D. 4"],
        selected: "", // 初始时未选择答案
      },
      {
        id: 1,
        question: "2 * 2 等于多少?",
        options: ["A. 2", "B. 3", "C. 4", "D. 5"],
        selected: "",
      },
      // 可以继续添加更多问题...
    ],
    submitted: false, // 标记是否已提交答案
  },
  handleOptionChange: function(e) {
    const  {questionId}= e.currentTarget.dataset
    const  optionId=e.detail.value
    this.data.questions[questionId].selected=optionId
    //更新已选中的项
    this.setData({
      questions: this.data.questions
      });
  },
  submitAnswers: function() {
    // 但为了简化,我们仅将submitted设置为true
    this.setData({
      submitted: true,
    });
    const answers=this.data.questions.map(q=>q.selected)
    console.log("您的答案是:",answers)
  },
});

本文主要论述了单选框的特点和作用,并用了难度不同的两个示例讲述了单选框的具体使用方法。

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

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

相关文章

php yii2 foreach中使用事务,事务中使用了 continue

问题描述&#xff1a;使用yii2&#xff0c;在foreach中使用事务&#xff0c;每个循环一个事务&#xff0c;在事务进行判断,然后直接continue,导致后面的循环数据没有保存成功 如下图&#xff1a; 修改后&#xff1a;如下图

【人工智能学习之商品检测实战】

【人工智能学习之商品检测实战】 1 开发过程2 网络训练效果2.1 分割网络2.2 特征网络 3 跟踪与后处理4 特征库优化5 项目源码解析5.1 yolo训练train_yolo.pygood_net.pydataset.pygood_cls_data.pysave_feature.pyanalyse_good.pyshop_window.pytest.py 6 结语 1 开发过程 拍摄…

Spring boot 整合influxdb2

一.服务安装 docker search influxdb docker pull influxdb docker run -dit --name influxdb --restart always -p 8086:8086 -v /dp/docker/file/influxdb:/var/lib/influxdb influxdb 访问8086 初始化 账号组织和新建bucket 创建密钥 这些豆记录下来 二.项目配置 引入依赖…

什么是物流锁控,RFID物流智能锁对于物流锁控有什么意义

在当今竞争激烈的全球商业环境中&#xff0c;物流行业作为经济发展的重要支撑&#xff0c;其高效、安全的运作至关重要。物流锁控作为保障物流运输过程中货物安全、准确和及时交付的关键环节&#xff0c;正面临着日益复杂的挑战。 一、物流锁控的定义与范畴 物流锁控&#xf…

JavaScript学习笔记(十一):JS Browser BOM

1、JavaScript Window - 浏览器对象模型 浏览器对象模型&#xff08;Browser Object Model (BOM)&#xff09;允许 JavaScript 与浏览器对话。 1.1 浏览器对象模型&#xff08;Browser Object Model (BOM)&#xff09; 不存在浏览器对象模型&#xff08;BOM&#xff09;的官方…

【周易哲学】生辰八字入门讲解(一)

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;本文讲解【周易哲学】生辰八字入门讲解&#xff0c;期待与你一同探索、学习、进步&#xff0c;一起卷起来叭&#xff01; 目录 生辰八字阴阳五行天干地支天干天干天干五合天干…

怎么恢复电脑删除的数据?4种有效的数据恢复方法

在数字时代&#xff0c;数据已成为我们生活与工作的核心要素&#xff0c;它不仅存储着我们工作中的各种重要资料&#xff0c;也记录着个人生活的点点滴滴。无论是精心准备的工作文档或者珍藏的重点照片&#xff0c;在不经意间被误删、因设备故障、中病毒等原因导致丢失&#xf…

AI砸掉了这些人的饭碗

在一般打工人眼里&#xff0c;金融圈往往被认为是高端脑力工作者的聚集地&#xff0c;他们工资高&#xff0c;学历高&#xff0c;能力强&#xff0c;轻易无法被替代。 可最近&#xff0c;偏偏一个“非人类”的物种&#xff0c;要来抢他们的饭碗。相关报道称&#xff0c;华尔街…

因为不懂Redis集群,我被diss了

点赞再看&#xff0c;Java进阶一大半 Redis官方在官网里写着霸气的宣传语&#xff1a;从构建者那里获取世界上最快的内存数据库Get the world’s fastest in-memory database from the ones who built it。南哥相信国内没用Redis的科技公司也屈指可数。 现在Redis已经走向了商业…

C++学习:C++是如何运行的

C 是一种强类型的编程语言&#xff0c;支持面向对象、泛型和低级内存操作。它的工作机制包括从编写源代码到生成可执行文件的一系列步骤。C与文件无关&#xff0c;文件只是容纳运行内容的载体&#xff0c;需要对文件以目标系统的规则编译后&#xff0c;才能在目标系统中运行。 …

红酒与情感:品味中的情感共鸣

在生活的细微之处&#xff0c;情感如涓涓细流&#xff0c;无声无息却又深深地影响着我们。而红酒&#xff0c;这瓶中的液体&#xff0c;仿佛是情感的载体&#xff0c;让我们在品味中感受那些难以言说的情愫。当定制红酒洒派红酒&#xff08;Bold & Generous&#xff09;与情…

有什么快速进行同声传译的软件?6个软件帮助你快速进行同声传译

有什么快速进行同声传译的软件&#xff1f;6个软件帮助你快速进行同声传译 同声传译是将一种语言的讲话即时翻译成另一种语言的过程&#xff0c;对于跨语言沟通非常重要。以下是六款可以帮助你快速进行同声传译的软件&#xff0c;每款软件都有其独特的功能和优势。 语音翻译…

智能计算模拟: DFT+MD+ML 深度融合及科研实践应用

智能计算模拟&#xff1a; DFTMDML 深度融合及科研实践应用 第一 部分 DFTMDML基础 1. 理论内容&#xff1a; 理论内容&#xff1a; 1.1. 计算模拟发展&#xff1a;MD, MC, DFT三大部分 1.2. 人工智能时代背景&#xff1a; 大数据与大模型对模拟计算的影响 1.3. 人工智能…

【免费】如何考取HarmonyOS应用开发者基础认证和高级认证(详细教程)

HarmonyOS应用开发者认证考试PC网址 基础&#xff1a;华为开发者学堂 高级&#xff1a;华为开发者学堂 注&#xff1a;免费认证&#xff0c;其中基础认证有免费的课程&#xff0c;浏览器用Edge。 文章目录 目录 HarmonyOS应用开发者认证考试PC网址 前言 一、备考流程 1、注册…

【题解】【数学】—— [CSP-J 2023] 小苹果

【题解】【数学】—— [CSP-J 2023] 小苹果 [CSP-J 2023] 小苹果题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示 1.题意分析2.代码 [CSP-J 2023] 小苹果 前置知识&#xff1a;数学分组思想&#xff0c;整体思想。 [CSP-J 2023] 小苹果 题目描述 小 Y 的桌子上…

家庭出游新宠儿!格瑞维亚改装大赛给出行带来无限可能

近期&#xff0c;格瑞维亚改装共创大赛的盛大开启&#xff0c;推动着改装领域前进的步伐。这场盛宴汇聚了400余份创意火花&#xff0c;每一款改装格瑞维亚都是对“家”的重新诠释&#xff0c;它们不仅仅是车轮上的风景&#xff0c;更是梦想与生活的完美融合。 大赛中&#xff0…

Day15--Servlet后端之Jsp了解学习(数据展示分页的实现)

JSP&#xff08;Java Server Pages&#xff09;是一种基于Java的动态网页开发技术&#xff0c;主要用于创建能够动态生成内容的Web应用程序。他可以前后端语言混合编写&#xff0c;用在编译后会变成一个类&#xff0c;你也可以理解为jsp文件就是一个servlet类&#xff0c;只是j…