当前位置: 首页 > news >正文

# 小程序 form 表单完整讲解

小程序 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,小程序不支持
http://www.jsqmd.com/news/1031416/

相关文章:

  • 京东市民服务又“上新”!这次是黑龙江“龙易办”
  • 闲置包包放一年贬值一半?2026郑州出手黄金时间段别错过 - 奢侈品回收评测
  • JoyBuilder首批接入!智谱GLM-5.2正式上线京东云
  • 招投标必读:一体化预制泵站、一体化污水提升泵站、一体式泵站核心参数与选型指南 - 泵站19832680777
  • 广东女子职业技术学院周边正规驾校排行实测 - 奔跑123
  • Python 数据容器详解,list、tuple、str、set、dict 到底怎么选
  • 深入理解 ThreadLocal:从设计精髓到内存泄漏避坑指南
  • 如何为混沌测试编译跨平台Toxiproxy:Windows与ARM架构完整实战指南
  • 泰州本地母婴行业企业做GEO应该怎么选服务商?2026靠谱GEO服务商推荐 - 子柔传媒
  • 湖南马上学教育怎么样 网络安全培训零基础就业数据客观测评 - 讲清楚了
  • 承德工伤维权索赔太难怎么办?2026年这5位专业律师推荐 - 本地品牌推荐
  • 如何永久保存微信聊天记录?WeChatMsg完整指南让珍贵对话永不消失
  • 英国签证银行流水翻译怎么办理?收藏这篇就够了! - 叮咚办真方便
  • 新疆摄影旅拍向导路线怎么排 - 盛世西域旅行
  • 2026年企业即时通讯软件终极指南:小天互连、钉钉、企业微信等5大厂商解析 - 小天互连即时通讯
  • 2026年服务器安全防护实战:从被DDoS到完整防护体系搭建
  • 2026副主任医师考前一个月,内科学高频易错题精讲课TOP对比盘点! - 医考机构品牌测评专家
  • 从选样本到模型训练的完整指南
  • 2026年口碑好的 权威推荐 国内宋式美学家具品牌、北美黑胡桃木家具源头厂家排行:5家原创品牌深度盘点 - 奔跑123
  • Threads 月活破 5 亿,社区功能升级+算法控制新功能助力持续增长
  • 在Windows电脑上畅享酷安社区:5个让你爱上酷安UWP客户端的理由
  • 基因笑传之测测 Bovine
  • 2027主管护师考试哪个机构押题准?实测盘点! - 医考机构品牌测评专家
  • 【2026最新测评】实测6款硬核降ai率工具,初稿疑似度降到5%! - 殷念写论文
  • 2026年天津武清工程机械租赁推荐:5家配套齐全的服务商 - 本地品牌推荐
  • 2026年6月 最新推荐 茶叶品牌加盟总部、茶叶加盟哪家好?行业标杆名录一览 - 奔跑123
  • 皖北地区汽车贴膜服务机构合规能力排行盘点 - 奔跑123
  • 湖南马上学教育怎么样 值不值得推荐 零基础择校权威参考指南 - 讲清楚了
  • AI时代的到来,外贸网站优化该怎么办?
  • 终极指南:10分钟掌握Turbo Vision跨平台文本界面开发