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

微信小程序 form 组件实战|三角形面积计算器

发布时间:2026/9/24 6:56:25 来源:云帆数科 栏目:资讯中心
微信小程序 form 组件实战|三角形面积计算器
# 微信小程序 form 组件实战三角形面积计算器含重置按钮作业 文章标签微信小程序 form组件 input button 海伦公式 简介本篇通过三角形面积计算器案例学习小程序 form 表单、input 输入框、button 按钮、wx.showToast 消息提示 API完成课后作业新增重置按钮完整可运行源码。## 一、案例需求设计小程序演示form、input、button组件以及消息提示框wx.showToastAPI。根据输入三角形三边使用**海伦公式**计算三角形面积。海伦公式\(s\frac{abc}{2}\)\(area\sqrt{s(s-a)(s-b)(s-c)}\)业务逻辑1. 页面加载第一个输入框自动获得焦点真机弹出数字键盘2. 输入合法三边任意两边之和大于第三边点击计算展示面积3. 三边不满足三角形规则弹出 Toast 提示清空输入框4. ✅作业扩展增加**重置按钮**一键清空输入框、隐藏计算结果。运行效果图- 初始界面3 个输入框 计算按钮 重置按钮- 合法输入页面下方直接输出面积- 非法输入弹出黑色提示框清空表单。 新建项目配置不使用云服务不使用模板。## 二、完整源码### 1.index.wxml页面结构!--index.wxml--navigation-bar titleform组件 back{{false}} colorblack background#FFF/navigation-barscroll-view classscrollarea scroll-y typelistview classboxview classtitle三角形面积计算器/view!-- bindsubmit监听表单提交bindreset监听表单重置 --form bindsubmitformSubmit bindresetformReset!-- focus自动聚焦typedigit真机弹出数字键盘name是表单取值key --input typedigit placeholder请输入三角形第一条边长 namea focustrue value{{sideA}}/input typedigit placeholder请输入三角形第二条边长 nameb value{{sideB}} /input typedigit placeholder请输入三角形第三条边长 namec value{{sideC}} /button typeprimary form-typesubmit计算/button!-- 作业新增重置按钮 form‑typereset --button typedefault form-typereset重置/button/form!-- wx:if条件渲染visible控制面积显示隐藏 --view wx:if{{visible}} classresult三角形的面积为: {{area}}/view/view/scroll-view**重点知识点**1. form 组件bindsubmit绑定表单提交事件表单内部button设置form‑typesubmit才会触发表单提交2. input 必须设置name属性e.detail.value才能拿到输入值**没有 name 拿不到表单数据**3. typedigit真机弹出带小数点数字键盘模拟器看不到4. focustrue页面打开输入框自动聚焦5. 重置按钮写在 form 内form‑typereset触发bindreset事件6. wx:if{{visible}}条件渲染控制结果是否显示。### 2.index.wxss页面样式/**index.wxss**/page {height: 100vh;display: flex;flex-direction: column;}.scrollarea {flex: 1;overflow-y: hidden;}input,button {font-size: 40rpx;margin: 40rpx 0;}input {border-bottom: 2rpx solid blue;}.result {font-size: 40rpx;color: blue;}### 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;}### 4.index.js业务逻辑// index.jsPage({data: {// 是否展示面积结果visible: false,sideA:,sideB:,sideC:,area:0},// 表单提交事件formSubmit(e) {console.log(e); //打印事件对象调试看表单数据let visible this.data.visible// input拿到的值是字符串转浮点数let sideANum parseFloat(e.detail.value.a)let sideBNum parseFloat(e.detail.value.b)let sideCNum parseFloat(e.detail.value.c)let area 0console.log(sideANum, sideBNum, sideCNum);// 判断三角形三边合法性任意两边之和大于第三边if ((sideANum sideBNum sideCNum) || (sideANum sideCNum sideBNum) || (sideBNum sideCNum sideANum)) {this.clear() //清空输入框wx.showToast({title: 问题三角形的两条边之和小于等于第三条边,icon: none, //不显示图标支持长文本duration: 2000})return} else {//海伦公式计算面积const s (sideANum sideBNum sideCNum) / 2area Math.sqrt(s * (s - sideANum) * (s - sideBNum) * (s - sideCNum))}if (area 0) {visible true} else {visible false}// setData更新视图this.setData({area,visible})},//清空输入框与结果clear() {this.setData({sideA: ,sideB: ,sideC: ,visible: false})},//作业重置按钮触发事件formReset(){console.log(点击重置);this.clear();}})## 三、核心知识点讲解### 1.form 表单提交原理点击form‑typesubmit按钮form 组件收集内部所有带name属性组件的值通过bindsubmit触发事件数据放在e.detail.value对象。 重要提醒**缺少 name 属性无法获取表单值**。### 2.wx.showToast 消息提示 API表格| 参数 | 说明 || --- | --- || title | 提示文字必填 || icon | 图标none不显示图标支持两行文本 || duration | 提示显示毫秒数 |### 3. 数据类型转换input输入返回字符串必须parseFloat()转为数字否则做加减乘除会出现字符串拼接 bug。### 4.setData 更新数据小程序不能直接修改this.data.xxx必须调用this.setData({})驱动页面视图刷新。### 5. 重置按钮实现作业1.form 标签增加bindresetformReset2. 表单内增加按钮设置form‑typereset3.js 写 formReset 处理函数调用 clear () 清空输入框与隐藏结果。## 四、测试用例1. 合法三角形输入30,40,50输出面积6002. 非法三角形输入30,40,80弹出提示表单清空3. 重置按钮输入任意数字点击重置输入框全部清空面积消失。 注意typedigit数字键盘效果**真机预览才可见**模拟器看不到数字键盘。## 五、踩坑记录1. 忘记写name属性拿不到表单数据2. 输入字符串直接运算没有parseFloat转换计算结果 NaN3. 直接修改this.data.visible页面不会刷新必须 setData4.toast 长文本使用icon:none否则文字被截断。## 六、扩展思考可自行拓展1. 增加输入空值、负数的判断2. 面积保留 2 位小数输出3. 输入过程实时校验不用点计算就提示错误。

相关推荐

VSCode安卓开发实战:三种高效路线详解
VSCode安卓开发实战:三种高效路线详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 6:56:19

创维M411A机顶盒刷机全攻略:UWE5621DS无线驱动适配与固件选择指南
创维M411A机顶盒刷机全攻略:UWE5621DS无线驱动适配与固件选择指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 6:56:12

东土工业交换机配置实战:VLAN、STP、PROFINET与SNMPv3深度适配
东土工业交换机配置实战:VLAN、STP、PROFINET与SNMPv3深度适配

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 6:56:06

ADS 2023实战:2.4GHz Wi-Fi LNA设计全流程指南
ADS 2023实战:2.4GHz Wi-Fi LNA设计全流程指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 7:47:24

MOS管开关损耗总对不上?非本征电容在作祟
MOS管开关损耗总对不上?非本征电容在作祟

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 7:46:47

从 GraphRAG 到 ColQwen:大模型文本分析有哪些新玩法?
从 GraphRAG 到 ColQwen:大模型文本分析有哪些新玩法?

温馨提示:若页面不能正常显示数学公式和代码,请阅读原文获得更好的阅读体验。 作者: 艾米丽 (连享会) 邮箱: lianxhcn163.com Title: 从 GraphRAG 到 ColQwen:大模型文本分析有哪些新玩法?Keywords: 语义标… · 2026/9/24 7:46:41

充电桩通信模块三重设计:PWM/PLC/CAN协同与鲁棒性实战
充电桩通信模块三重设计:PWM/PLC/CAN协同与鲁棒性实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 7:46:41

GD32450Z-EVAL 开发板 RT-Thread BSP 快速上手与进阶配置指南
GD32450Z-EVAL 开发板 RT-Thread BSP 快速上手与进阶配置指南

操作系统嵌入式物联网嵌入式OSRTOS 【免费下载链接】rt-thread RT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/ 项目地址: https://gitcode.com/gh_mirrors/rt/rt-thread 点击查看 免费下载 本指南以… · 2026/9/24 7:46:41

野火霸天虎 STM32F407初步认识
野火霸天虎 STM32F407初步认识

刚开始学习单片机时,我使用的是野火霸天虎 STM32F407 开发板,做的第一个实验是通过寄存器操作点亮 LED。 代码并不长,但真正动手后,我发现自己对很多概念还没有理解清楚:芯片和 CPU 是什么关系?往一个地址… · 2026/9/24 7:46:35

基于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

了解更多?预约专属演示

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

企业微信二维码