1.近日开发微信小程序中,遇到了双表单单按钮提交问题。
2.首先:微信小程序中的form组件:
formbindsubmit="formSubmit"...buttonclass="primary"formType="submit"提交/button/form3.bindsubmit所对应提交的方法
4.button中formType所对应表单的提交
5.这个时候问题就显现出来了:
6.当我们同一个页面,同一个form表单中包括两种想要提交的不同数据,该如何处理?
7.首先我们看xhtml中的写法(这里制作的是一套卷子使用iviewUI):这里可以看出我想要通过一个submit提交两个不同的试卷
formbindsubmit="formSubmit"viewviewclass="page"!--二层判断--i-celli-class="borderTop"单选/i-cellviewview题目1名称/viewviewviewclass="sectionsection_gap"radio-groupclass="radio-group"name="题目1"labelradioclass="radio"value="题目1内容"}}'textstyle="font-size:15px;line-height:26rpx"题目内容/text/radio/label/radio-group/view/view/view/view/view!--@另一套卷子--viewtext试卷名/text/viewviewviewclass="page"!--二层判断--viewi-cell单选/i-cellviewviewtext题目2名称/text/viewviewviewclass="sectionsection_gap"radio-groupclass="radio-group"labelradioclass="radio"value="题目2"text题目内容/text/radio/label/radio-group/view/view/view/view/viewbuttonclass="primary"formType="submit""提交/button/form8.我们看formSubmit方法:
formSubmit:function(e){varthat=this,wx.request({method:"POST",url:*****,data:{answer:e.detail.value},success:function(ret){wx.showToast({title:"提交成功",icon:"success",duration:1000});setTimeout(function(){wx.navigateBack({});},1000);}});},9.这个方法中所实现的功能是:提交表单,如果提交成功1S后返回上一页
10.但是这里有个问题:此处的e.detail.value所指的是form表单中所有组件的name值
11.当form提交出去以后显示发送数据的格式是:
12.answer:{"题目1":"题目1内容","题目2","题目2内容"}
13.但是后台需要我们处理成这种格式:
allAnswer:[answer1:[{"题目1":"题目1内容"}],answer2:[{"题目2":"题目2内容"}]]14.这个时候就要在js中对数据进行处理了:
//首先在data中定义好发送所需要的数组/对象:data{answer1:{}answer2:{},allAnswer:[]}//然后在formSubmit中进行处理formSubmit:function(e){varthat=this;varanswer1=that.data.answer1;varanswer2=that.data.answer2;varallAnswer=that.data.allAnswer;varvalue=e.detail.value//定义value为获取到的全部表单组件值for(varainvalue){//使用forin遍历拿出key和valueif(a.indexOf('题目1')!=-1){//这里的条件根据所需可以任意更改//每一位进行比对,符合条件的按照所需格式赋值//这里可以赋值为需要的格式answer1[a]=value[a]that.setData({answer1:answer1})}if(a.indexOf('题目2')!=-1){//array的每一位与value的每一位对应array[a]=value[a];//这里可以赋值为需要的格式answer2[a]=value[a]that.setData({answer2:answer2})}}allAnswer={["answer1"]:answer1,["answer2"]:answer2};wx.request({method:"POST",url:******,data:{allanswer:allanswer,},success:function(ret){that.setData({isDisable:true});wx.showToast({title:"提交成功",icon:"success",duration:1000});setTimeout(function(){wx.navigateBack({});},1000);}});},15.这个时候发送出的东西已经完美的显现了。
16.该文章所阐述最主要的思想是:
17.解决这种类似的form表单提交数据处理的事情,可以多利用for...in循环来对key和value进行详细
18.的条件判断等操作,最后通过对应关系重新组成所需要的数据,再发送即可。
微信小程序:双表单单按钮提交技巧-小程序多页表单-小程序表单制作
浏览量:2018
时间:
来源:Callback_heaven
版权声明
即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。
最新资讯
-

即速应用,赋能企业玩转微信小程序智慧经营
作为国内领军的智慧商业经营服务商,即速应用始终秉承“让每个企业都拥有自己的智慧店铺”的愿景,持续赋能更多企业玩转智慧经营。即速应用旗下拥有“小程序搭建工具-即速应用”、“私域流量专家-即客云”等产品,帮助商家打通互联网全生态营销闭环。 -

即客云2.0重磅更新,让微信小程序运营更简单!
即客云作为一款基于企业微信的第三方工具,现从多维度提供超过30种功能,自上线以来,已服务多家企业,受到一致好评。近期,我们根据客户反馈和市场调研正式推出升级版 即客云2.0!更新了私域运营SOP,群日历功能,批量拓客,客户雷达,消息推送,个人欢迎语,帮助企业更好运用企业微信;同时提升了社群运营工作标准化,提升运营效率,帮助企业实现客户增长,玩转私域流量。 -

零代码 + AI 双轮驱动|即速应用解锁人工智能小程序开发新范式
无需代码、无需 AI 算法功底,普通人也能快速搭建智能小程序。即速应用将人工智能与零代码开发深度融合,推出 AI 智能生成能力,用户通过自然语言描述需求,AI 自动生成小程序页面、功能模块与后台配置,覆盖商城、预约、同城、社区团购等全场景。平台内置 AI 智能推荐、智能客服、用户画像分析等能力,一键对接微信生态,打通视频号、企业微信、短信跳转,帮企业快速落地 AI 应用,抢占智慧经营先机,让每家企业都拥有 AI 驱动的智慧店铺。










