知识 分享 互助 懒人建站

    懒人建站专注于网页素材下载,提供网站模板、网页设计、ps素材、图片素材等,服务于【个人站长】【网页设计师】和【web开发从业者】的代码素材与设计素材网站。

    懒人建站提供网页素材下载、网站模板
    知识 分享 互助!

    微信小程序获取多个formId的方法(解决小程序点击一次,提交多个表单问题)

    作者:不吃鱼的猫 2018-06-17 人气:
    微信小程序获取多个formId的方法,解决小程序点击一次,提交多个表单问题,只要你点击登录按钮,就能提交一次表单,也能获取一次formId,但是想要实现点击一次提交多次,光靠复制这几行代码,貌似还不行,无论是缩小按钮,还是一些其他的奇葩方式,都不行。

    微信小程序获取多个formId的方法重点,讲一下遇到问题,和解决问题的过程。

    需求:微信小程序点击一次,提交多个表单,其实是有业务需求的,这里不写太清楚,做到这一块的同学,自然懂

      <form bindsubmit="formSubmit" report-submit="{{true}}">
          <button formType="submit" class='btn'>
                <view class='aa'>
                </view>
          </button>
      </form>

    如同上面的几行代码,只要你点击登录按钮,就能提交一次表单,也能获取一次formId,但是想要实现点击一次提交多次,光靠复制这几行代码,貌似还不行,无论是缩小按钮,还是一些其他的奇葩方式,都不行。

    这里要说的是一种点击穿透方式

      <form bindsubmit="formSubmit" report-submit="{{true}}">
          <button formType="submit" class='btn'>
                <view class='aa'>
                </view>
          </button>
      </form>

    我在里面写了一个view (button里面)
    给你们看一下样式(样式很重要)

          .btn{
            width: 20rpx;
            height: 20rpx;
            margin: 0;
            padding: 0;
            border-radius: 0;
            position: fixed;
            background: rgba(0,155,0,0.5);
            top: 0;
          }
          button::after{
            border:none;
          }
          .aa{
            width: 200rpx;
            height: 200rpx;
            background: rgba(0,155,0,0.5);
            position:fixed;
            top: 0;
          }

    再看一下js,顺便说一下,模拟器上看不到实际的formId,用手机调试模式可以看到

          formSubmit: function(e) {
              if (e.detail.formId != 'the formId is a mock one') {
                  this.setData({
                      formIdString: e.detail.formId + "," + this.data.formIdString
                  })
              }
              console.log(this.data.formIdString)
          },

    看到的是这样,当你点击绿色的任何区域都能点击到按钮,然后提交表单

    然后,骚操作来了。。。

      <form bindsubmit="formSubmit" report-submit="{{true}}">
          <button formType="submit" class='btn'>
                <view class='aa'>
                     <form bindsubmit="formSubmit" report-submit="{{true}}">
                           <button formType="submit" class='btn'>
                                <view class='aa'>
                                </view>
                          </button>
                     </form>
                </view>
          </button>
      </form>

    我把整个的wxml代码复制一遍 放到view里面,看起来和之前差不多,其实是叠起来了

    然而 实际操作的话,点击绿色部分,会提交两次,点击红色部分只会提交一次,这是为啥呢,先看图

    微信小程序获取多个formId的方法(解决小程序点击一次,提交多个表单问题)

    现在应该明白了吧,个人感觉图已经解释一切,如果不懂,可以发评论。

    要更多formId 那么就要更多的复制和粘贴,如果哪位老铁,写了个简化写法记得告诉我,我暂时还没有想到好的办法。

    然后,这篇文章是我的原创。。。 下次还有新鲜的想法,还会和大家交流。


    作者:破土称金
    链接:https://www.jianshu.com/p/84dd9cd6eaed


    ↓ 查看全文

    微信小程序获取多个formId的方法(解决小程序点击一次,提交多个表单问题)由懒人建站收集整理,您可以自由传播,请主动带上本文链接

    懒人建站就是免费分享,觉得有用就多来支持一下,没有能帮到您,懒人也只能表示遗憾,希望有一天能帮到您。

    微信小程序获取多个formId的方法(解决小程序点击一次,提交多个表单问题)-最新评论