小程序如何获取多个formId实现详解


Posted in Javascript onSeptember 20, 2019

很多人使用过form和button的多层嵌套来实现点击一次获取多个formId的目的,如下图所示,点击一次“提交”,可以获取到多个formId

小程序如何获取多个formId实现详解

但是在今年3月份,这个投机取巧的方法(算是微信的一个bug)已经被微信修复,那么再使用这个方法,所拿到的formId都是相同的了,也就不符合我们的需求了

接下来给大家介绍另一种方法:

将form和button封装成组件模拟form submit,并把这个组件做成layout级,这样可以把整个页面包括在layout里面,利用事件自动冒泡的特性,只要点击了页面任一位置,就能获取到formId

1. 新建一个组件layout,wxml、wxss、js、json代码分别如下

<form bindsubmit="formSubmit" report-submit class="layout">
 <button formType="submit" class="button" hover-class="none">
  <view class="fixed"><slot></slot></view>
 </button>
</form>
.layout {
  display: inline-block;
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
  font-size: inherit;
  text-align: left;
  text-decoration: none;
  line-height: inherit;
  -webkit-tap-highlight-color: transparent;
  color: inherit;
  width: 100%;
  position: relative;
}
.layout .button{
  display: inline-block;
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
  font-size: inherit;
  text-align: left;
  text-decoration: none;
  line-height: inherit;
  -webkit-tap-highlight-color: #000;
  color: inherit;
  width: 100%;
  position: relative;
}
.layout .button .fixed{
  position:relative;
  z-index: 9999;
  width: 100%;
}
.layout .button:before,.layout .button:after{
  border-width: 0;
}
Component({
 methods: {
  formSubmit: function (e) {
   let formId = e.detail.formId
   console.log(formId)
  }
 }
})
{
 "component": true
}

2. 在app.json中,将layout添加为全局组件

"usingComponents": {
  "layout": "/components/layout/index"
 }

3. 在页面中使用

<layout>
 <view class="container">
  ...
 </view>
</layout>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery $.ajax入门应用一
Nov 19 Javascript
Js基础学习资料
Nov 23 Javascript
jQuery焦点图切换简易插件制作过程全纪录
Aug 27 Javascript
Javascript中this的用法详解
Sep 22 Javascript
浅谈JavaScript实现面向对象中的类
Dec 09 Javascript
JQuery实现图片轮播效果
Sep 15 Javascript
有关JavaScript中call()和apply() 的一些理解
May 20 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
Jul 18 Javascript
微信小程序实战之登录页面制作(5)
Mar 30 Javascript
浅谈angular2子组件的事件传递(任意组件事件传递)
Sep 30 Javascript
微信小程序系列之自定义顶部导航功能
May 21 Javascript
利用js实现简易红绿灯
Oct 15 Javascript
SSM+layUI 根据登录信息显示不同的页面方法
Sep 20 #Javascript
使用Layui搭建后台管理界面的操作方法
Sep 20 #Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
Sep 20 #Javascript
小程序使用watch监听数据变化的方法详解
Sep 20 #Javascript
基于layui内置模块(element常用元素的操作)
Sep 20 #Javascript
解决Layui中templet中a的onclick参数传递的问题
Sep 20 #Javascript
解决layui动态添加的元素click等事件触发不了的问题
Sep 20 #Javascript
You might like
Zend studio文件注释模板设置方法
2013/09/29 PHP
使用openssl实现rsa非对称加密算法示例
2014/01/24 PHP
php异步多线程swoole用法实例
2014/11/14 PHP
PHP异常处理Exception类
2015/12/11 PHP
php gd等比例缩放压缩图片函数
2016/06/12 PHP
封装了一个js图片轮换效果的函数
2011/09/28 Javascript
iframe里的页面禁止右键事件的方法
2014/06/10 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
详解javascript中对数据格式化的思考
2017/01/23 Javascript
浅谈Node.js 子进程与应用场景
2018/01/24 Javascript
vue中实现methods一个方法调用另外一个方法
2018/02/08 Javascript
Koa 使用小技巧(小结)
2018/10/22 Javascript
Node.js 获取微信JS-SDK CONFIG的方法示例
2019/05/21 Javascript
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
vue组件实现移动端九宫格转盘抽奖
2020/10/16 Javascript
介绍Python中几个常用的类方法
2015/04/08 Python
python使用wmi模块获取windows下的系统信息 监控系统
2015/10/27 Python
Python常见格式化字符串方法小结【百分号与format方法】
2016/09/18 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
2017/11/22 Python
Python 错误和异常代码详解
2018/01/29 Python
Python实现k-means算法
2018/02/23 Python
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
2018/06/11 Python
Python实现绘制双柱状图并显示数值功能示例
2018/06/23 Python
python入门:这篇文章带你直接学会python
2018/09/14 Python
python卸载后再次安装遇到的问题解决
2019/07/10 Python
python经典趣味24点游戏程序设计
2019/07/26 Python
Python生命游戏实现原理及过程解析(附源代码)
2019/08/01 Python
Python实现FLV视频拼接功能
2020/01/21 Python
用python写爬虫简单吗
2020/07/28 Python
如何用Python和JS实现的Web SSH工具
2021/02/23 Python
波兰多品牌运动商店:StreetStyle24.pl
2020/09/22 全球购物
Shell如何接收变量输入
2012/09/24 面试题
升职自荐信范文
2013/10/05 职场文书
生物医学工程专业学生求职信范文分享
2013/12/14 职场文书
北京大学中文系教授推荐的10本小说
2019/08/08 职场文书
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python