《微信小程序案例4.1详解:form表单、数据绑定、校验与重置按钮》
一、项目背景与需求本案例案例4.1要求使用微信小程序的 form 组件、 input 组件、 button 组件和消息提示框 API设计一个三角形面积计算器。用户输入三角形的三条边长系统根据海伦公式计算并显示三角形面积同时对输入数据进行合法性校验。在基本功能之上还要求增加一个“重置”按钮点击后清空所有输入框中的数值恢复页面初始状态。二、核心技术点与实现过程form 表单组件form 组件是小程序中用于收集用户输入的容器组件。它会自动收集内部所有带 name 属性的表单控件如 input 、 checkbox 、 radio 等的值。通过 bindsubmit 绑定提交事件通过 bindreset 绑定重置事件。在 index.wxml 中用 标签包裹所有表单控件并分别绑定提交和重置事件... 2. input 组件 每个输入框都设置了 name 属性指定该输入框在表单提交时的键名不设置则无法通过 e.detail.value 取到值。同时设置了 typenumber 在真机上会弹出纯数字键盘方便用户输入数字。第一个输入框还设置了 focustrue 页面加载时自动获得输入焦点。 3. 数据绑定与 setData 通过 WXML 中的数据绑定语法 {{visible}} 控制结果区域的显示/隐藏。在 JS 中通过 this.setData() 修改数据驱动视图自动更新这是小程序“数据驱动视图”核心思想的体现。 4. 三角形合法性校验 在计算面积前必须进行两步校验 ● 数据类型校验用 isNaN() 判断输入是否为有效数字防止用户输入文字导致计算异常。 ● 三角形不等式校验任意两边之和必须大于第三边 a b c 且 a c b 且 b c a 否则不构成三角形。 校验失败时通过 wx.showToast 弹出提示信息并清空输入框、隐藏结果区域。 5. 海伦公式计算面积 已知三角形三边 a、b、c先计算半周长 s (a b c) / 2则面积 S √(s(s-a)(s-b)(s-c))。 let s (a b c) / 2; let area Math.sqrt(s * (s - a) * (s - b) * (s - c)); area Math.round(area * 100) / 100; // 保留两位小数 6. 重置按钮的实现 给 button 设置 form-typereset 点击后自动触发 form 组件的 bindreset 事件。在 formReset 回调函数中通过 setData 清空三个输入框的数据并将 visible 设为 false 隐藏面积显示区域实现页面恢复到初始状态。 重置 三、页面最终效果 在微信开发者工具中编译运行后页面顶部显示“三角形面积计算器”标题下方依次为三个输入框边长 a、b、c和两个按钮“计算”和“重置”。输入合法数据如 3、4、5点击“计算”后底部绿色区域显示面积结果 S 6输入不合法数据则弹出 Toast 提示并自动清空点击“重置”按钮后所有输入框被清空结果区域隐藏。在手机真机预览时点击输入框可弹出纯数字键盘。 四、总结与体会 通过本次案例的实践我系统地掌握了小程序表单开发的核心流程 1. 表单定义使用 form 组件包裹表单控件通过 name 属性建立数据键名映射。 2. 事件绑定通过 bindsubmit 和 bindreset 分别处理表单提交和重置逻辑。 3. 数据校验在业务计算前进行数据类型和数学逻辑的双重校验保证程序的健壮性。 4. 数据驱动视图通过 setData 修改数据视图自动响应更新无需手动操作 DOM。 5. 海伦公式的应用将数学知识融入编程实践实现了已知三边求面积的完整功能。 这些表单开发模式在实际项目中非常通用是小程序开发的基础技能也为后续学习自定义组件Component和复杂表单交互打下了坚实基础。

相关新闻

EOS 网络带宽(NET)解除质押完全指南:cleos system undelegatebw 实战解析

EOS 网络带宽(NET)解除质押完全指南:cleos system undelegatebw 实战解析

区块链 【免费下载链接】eos An open source smart contract platform 项目地址: https://gitcode.com/gh_mirrors/eo/eos 点击查看 免费下载 在 EOS 主网与基于 eosio 的链上,账户通过质押(stake)系统代币获得 CPU 与 NET&…

2026/9/24 9:15:29 阅读更多 →
EmDash Schema and Seed 文件完全指南:用 seed.json 一键定义站点结构与示例内容

EmDash Schema and Seed 文件完全指南:用 seed.json 一键定义站点结构与示例内容

CMS后端前端插件系统 【免费下载链接】emdash EmDash is a full-stack TypeScript CMS based on Astro; the spiritual successor to WordPress 项目地址: https://gitcode.com/gh_mirrors/emdas/emdash 点击查看 免费下载 EmDash 的 seed 文件(seed/se…

2026/9/24 9:15:29 阅读更多 →
将 Apache Druid Ingestion Spec 一键转换为 SQL:基于 MSQ 引擎的批量摄入迁移实战

将 Apache Druid Ingestion Spec 一键转换为 SQL:基于 MSQ 引擎的批量摄入迁移实战

数据库OLAP大数据后端 【免费下载链接】druid Apache Druid: a high performance real-time analytics database. 项目地址: https://gitcode.com/gh_mirrors/druid6/druid 点击查看 免费下载 本文介绍如何在 Apache Druid Web Console 的 Query 视图中&#xff0c…

2026/9/24 9:15:29 阅读更多 →

最新新闻

ESP32 应用平台:基于 WebAssembly 实现固件动态加载应用

ESP32 应用平台:基于 WebAssembly 实现固件动态加载应用

/* 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 9:45:53 阅读更多 →
Photogimp for Windows:让GIMP秒变Photoshop的免费配置方案

Photogimp for Windows:让GIMP秒变Photoshop的免费配置方案

/* 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 9:45:53 阅读更多 →
洛谷-入门-B2059

洛谷-入门-B2059

这是我在洛谷刷的第59道题。#include<stdio.h> int main() { int m,n,i,num0; scanf("%d %d",&m,&n); for(im;i<n;i) {if(i%2!0){numi; } } printf("%d",num);return 0; }反思&#xff1a; 余2做为判断。

2026/9/24 9:45:53 阅读更多 →
DeepSeek医疗私有化部署实战:从病历NLP到vLLM结构化流水线

DeepSeek医疗私有化部署实战:从病历NLP到vLLM结构化流水线

/* 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 9:45:53 阅读更多 →
恶意代码可视化检测实战:从字节流到CNN图像分类

恶意代码可视化检测实战:从字节流到CNN图像分类

/* 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 9:45:53 阅读更多 →
【awinic inside】艾为第六代高压线性马达驱动助力OPPO Find X10系列新体验

【awinic inside】艾为第六代高压线性马达驱动助力OPPO Find X10系列新体验

产品介绍Boost Haptic awinicTikTap算法可选&#xff0c;丰富效果全新体验 多重专项设计为效果护航&#xff1a;F0追踪、AAE自动刹车、LCC一致性校准 基础性能强大&#xff1a;2.3V支持硅负极电池、LRA故障诊断、11V高压振感强

2026/9/24 9:44:52 阅读更多 →

日新闻

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

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

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

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介&#xff1a;一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码&#xff0c;针对计算机相关专业正在做毕设或需要项目实战的学习者&#xff0c;可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过&#xff0c;可直接运行&#xff0c;覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住&#xff0c;是在一个老旧的WinForms模块里&#xff1a;几十个类依赖PropertyChanged通知&#xff0c;运行时反射读属性、发通知&#xff0c;每次启动慢半拍不说&#xff0c;一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事&#xff1a;用Flutter给OpenHarmony做一款游戏集合类的App&#xff0c;说白了就是把若干小游戏塞进一个壳里&#xff0c;用统一入口分发。这个方向本身不算新鲜&#xff0c;真正让我花了不少心思的&#xff0c;是首页那堆游戏卡…

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档&#xff0c;最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事&#xff1a;今天在表后面多加了两个空白行&#xff0c;明天给客户交稿前发现整个章节的编号全部错位&#xff0c;光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年&#xff0c;说实话&#xff0c;第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年&#xff0c;流量惨淡、功能臃肿、代码自己都懒得看第二遍之后&#xff0c;我才慢慢琢磨明白一个道理&#xff1a;第一个网站是练手&…

2026/9/23 9:53:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践&#xff1a;原型怎样变成可用功能分类&#xff1a;[AI/大模型]细分主题&#xff1a;AI 增强型 CI/CD 流水线自动化与 GitOps 实践&#xff1a;Agent 工作流、工具调用与任务拆解&#xff1a;从原型到生产的验收清单很多团队在尝试用大…

2026/9/23 9:53:40 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战&#xff1a;复盘记录怎样真正派上用场分类&#xff1a;[工程技术]细分主题&#xff1a;Kubernetes 生产环境运维与排障实战&#xff1a;可复制的项目复盘模板与决策记录大部分团队的事故复盘报告&#xff0c;最后都变成了躺在 Confluence 或钉…

2026/9/23 9:53:40 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理&#xff1a;核心链路应该先拆哪一步分类&#xff1a;[工程技术]细分主题&#xff1a;Docker 容器化技术与镜像安全管理&#xff1a;核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用&#xff08;包含 Web 接口、后台…

2026/9/23 9:53:40 阅读更多 →