关于小程序的form表单提交,以及提交picker时的问题

最近在写小程序,发现了一些细节性的问题,在这里做一个记录,和大家一起学习。

1.先来说说picker吧,我是在写选择地址的时候遇到的问题。
picker的第一个问题就是怎么在后台获取到提交的数据,我用的是this.data.xxxx[e.detail.value].xxxx

这是我的picker选择器,就不细说了,中间view是用来回显的,.name是我的对象集合里的一个属性,你们可以随便点,想要什么点什么,city呢可以解释为数组下标,可以在js里初始化一下。cityList是我后台返回的数据用setData给它的。

		wxml:
        <picker class="picker" name="id" bindchange="bindChange" value="{{city}}" range="{{cityList}}" range-key="name">
          <view> 市:{{cityList[city].name}} </view>
        </picker>
        
		js:
		  bindChange: function(e) {
		    cityName = this.data.cityList[e.detail.value].name
		    console.log(cityName)
		  },

		this.data.集合[e.detail.value].所需要的属性
		这样,就可以获取到picker的值了

2.下面在说说form表单提交时的问题吧。第一做小程序表单时,会发现与web有很大不同。因为小程序表单提交之后,input里的数据没有消失,页面没有任何变化,如果你不打个输出语句,你都看不出表单到底有没有提交成功。这让我这样第一次写小程序的小白慌的一批,以为是哪里写错了。其实,哪里都没错,小程序就是这样。
我是这样来处理这个问题的,用:

          wx.navigateBack({
            delta: 1
          })

可以返回上一层,1是返回上一层,2就是返回两层。这样成功之后,页面跳转回去。
写到这里,觉得写的差不多了,但偏偏picker又出来搞事情。
什么问题呢?就是虽然你提交了,页面也跳转了,input里的数据也消失了,但picker里选中的数据并没有消失,因为 xxx = this.data.xxxx[e.detail.value].xxx.
用了等号,xxx也就把数据存到变量里了,所以它是有值的。

我是这样来处理这个问题的:

  success: function(e) {
          provinceName = 0,
            cityName = 0,
            areaName = 0
          console.log("成功");

没有错,就是表单提交成功以后,我把他们又重新初始化一下,这样再次添加的时候他们都是0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值