尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

# 小程序 form 表单完整讲解

# 小程序 form 表单完整讲解
📅 发布时间:2026/6/29 5:27:12

小程序 form 表单完整讲解

<form catchsubmit="formSubmit" catchreset="formReset">

1. 关键字说明

① catchsubmit

  • 触发时机:表单内 button form-type="submit" 点击时执行
  • catch:阻止事件冒泡(区别于 bindsubmit,bind 会向上冒泡)
  • 绑定函数:formSubmit,表单数据会自动封装进 e.detail.value

② catchreset

  • 触发时机:表单内 button form-type="reset" 点击时执行
  • 作用:清空所有输入框、picker 等表单组件的值

2. 完整可运行示例(包含 input、picker、提交、重置)

WXML

<form catchsubmit="formSubmit" catchreset="formReset"><!-- 输入框 --><view class="page-section"><input name="username" placeholder="请输入姓名" /></view><!-- 下拉选择器,必须写 name 才能提交携带值 --><picker name="dept" mode="selector" range="{{partListArray}}" range-key="name" value="{{index}}" bindChange="bindPickerChange"><view wx:if="{{index > -1}}">隶属部门:{{partListArray[index].name}}</view><view wx:else>隶属部门</view></picker><!-- 提交按钮 --><button form-type="submit">提交表单</button><!-- 重置按钮 --><button form-type="reset">重置</button>
</form>

3. 配套 JS

Page({data: {index: -1,partListArray: [{ id: 1, name: '研发部' },{ id: 2, name: '市场部' }]},bindPickerChange(e) {this.setData({ index: e.detail.value })},// 表单提交回调formSubmit(e) {// 所有带 name 的表单组件自动打包在这里const formData = e.detail.value;console.log('表单全部数据:', formData);/*输出格式示例:{username: "用户输入的名字",dept: "选中项下标"}*/// 直接传给后端接口wx.request({url: 'http://192.168.xxx:8000/smart/xxx/',method: 'POST',data: formData,success: res => {wx.showToast({ title: '提交成功' })}})},// 表单重置回调formReset() {console.log('表单已清空');// 手动重置picker下标this.setData({ index: -1 })}
})

4. 必记核心规则

  1. 所有表单组件必须加 name 属性
    没有 name 的 input / picker / radio 不会被提交携带。
  2. submit 按钮必须标记 form-type="submit"
  3. reset 按钮必须标记 form-type="reset"
  4. catchsubmit vs bindsubmit
    • catchsubmit:阻止冒泡,推荐使用
    • bindsubmit:事件会冒泡到外层父标签
  5. picker 提交拿到的是选中下标数字,不是 name/id,需要自己根据下标匹配完整对象

5. 踩坑点

  • reset 只能清空 input 原生值,picker 的 index 不会自动变回 -1,需要在 formReset 里手动 setData({index:-1})
  • 表单组件不加 name,接口接收不到该字段
  • form 不能嵌套 form,小程序不支持

相关新闻

  • 闲置包包放一年贬值一半?2026郑州出手黄金时间段别错过 - 奢侈品回收评测
  • JoyBuilder首批接入!智谱GLM-5.2正式上线京东云
  • 广东女子职业技术学院周边正规驾校排行实测 - 奔跑123

最新新闻

  • 瑞萨RA8D2 SCI_B模块配置实战:从寄存器解析到UART驱动开发
  • 从零手写神经网络:用NumPy实现OR门理解反向传播原理
  • 如何快速解决C盘爆红问题:WindowsCleaner完整使用指南
  • 把“难开口的话“当成一次高风险接口调用:5 类沟通辅助工具选型实测
  • 2026年汽车零部件检验计划编制规范:从GDT识别到数字化FAI落地
  • 从Pytest框架到CI/CD集成:构建可持续演进的高效接口自动化测试体系

日新闻

  • ENVI5.3.1实战:基于Landsat 8影像的区域无缝镶嵌与精准裁剪
  • 3步完成HS2-HF Patch安装:新手快速打造完美HoneySelect2体验
  • 微信好友检测终极指南:3分钟发现谁已悄悄删除你

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号