美文网首页
解决小程序点击一次,提交多个表单,获取多个formId的方法

解决小程序点击一次,提交多个表单,获取多个formId的方法

作者: 破土称金 | 来源:发表于2018-06-13 13:36 被阅读0次
image.png

首先,为啥要获取多个formId,我就不解释了,大家都是明白人。

其次,第一次发简书,有什么潜规则啥的,没有遵守,不要介意,嘿嘿。

然后,这篇文章是我的原创。。。

重点,在这里,我讲一下遇到问题,和解决问题的过程。

需求:如题,其实是有业务需求的,这里不写太清楚,做到这一块的同学,自然懂

  <form bindsubmit="formSubmit" report-submit="{{true}}">
      <button formType="submit" class='btn'>
            登录
      </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)
      },
image.png

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

然后,骚操作来了。。。

  <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里面,看起来和之前差不多,其实是叠起来了

image.png

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

image.png

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

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

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

相关文章

  • 解决小程序点击一次,提交多个表单,获取多个formId的方法

    首先,为啥要获取多个formId,我就不解释了,大家都是明白人。 其次,第一次发简书,有什么潜规则啥的,没有遵守,...

  • 小程序模板消息群发

    由于小程序的限制,表单提交只能发送一次,如果想要群发就只能保存多个formid了,有效期为7天。自己个人提交表单获...

  • 消息推送

    微信小程序消息推送 获取formId的方式 页面 组件 微信支付成功 推送规则 当用户在小程序内发生过提交表单行为...

  • formId 的获取 - 小程序

    微信小程序使用模板消息需要使用支付prepay_id或表单提交formId,要获得 formId 需要在 form...

  • 小程序点击一次按钮采集多个formid

    废话不多说,直接上代码 原理:是用事件穿透来实现的执行顺序是从内往外执行、所以最后执行的事件为formSubmit...

  • 主播站form_id的使用

    小程序发送模板消息时需要参数form_id,该参数在表单提交场景下,为 submit 事件带上的 [formId]...

  • 大连滕泰科技学习笔记2020-05-13

    1,web开发方法论中第二条 获取表单数据get方式post方式 2,表单数据方式 1个表单对应多个实体类提交数据...

  • 程序心得

    前端表单提交: 获取点击事件传过来的表单值,封装成js对象 将其它比如小程序选择器等本地非表单属性添加到该对象中 ...

  • 表单

    表单基础 提交表单 Tips: 解决重复提交表单的问题的两个方法1)在第一次提交表单后就禁用提交按钮2)利用ons...

  • 上传多个文件的问题

    首先看你上传是用的input 表单上传 如果上传多个文件 就用多个input (file) 提交 核心点就是提交的...

网友评论

      本文标题:解决小程序点击一次,提交多个表单,获取多个formId的方法

      本文链接:https://www.haomeiwen.com/subject/lirjeftx.html