小程序如何获取多个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 相关文章推荐
参考:关于Javascript中实现暂停的几篇文章
Mar 04 Javascript
经常用的图片在容器中的水平垂直居中实例
Jun 10 Javascript
检测是否已安装 .NET Framework 3.5的js脚本
Feb 14 Javascript
jquery 选择器部分整理
Oct 28 Javascript
浅谈Javascript的静态属性和原型属性
May 07 Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
Jan 26 Javascript
理解javascript函数式编程中的闭包(closure)
Mar 08 Javascript
JS实现点击事件统计的简单实例
Jul 10 Javascript
浅谈angular.copy() 深拷贝
Sep 14 Javascript
你可能从未使用过的11+个JavaScript特性(小结)
Jan 08 Javascript
vue路由缓存的几种实现方式小结
Feb 02 Javascript
JS+CSS实现过渡特效
Jan 02 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
php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
2011/11/07 PHP
php 启动报错如何解决
2014/01/17 PHP
PHP常见漏洞攻击分析
2016/02/21 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
Extjs学习笔记之一 初识Extjs之MessageBox
2010/01/07 Javascript
javascript表单验证使用示例(javascript验证邮箱)
2014/01/07 Javascript
jquery制作居中遮罩层效果分享
2014/02/21 Javascript
js使用setTimeout实现定时炸弹的方法
2015/04/10 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
JavaScript操作XML/HTML比较常用的对象属性集锦
2015/10/30 Javascript
JS实现的点击表头排序功能示例
2017/03/27 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
2017/06/19 Javascript
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
2018/11/01 NodeJs
微信小程序页面间传值与页面取值操作实例分析
2019/04/30 Javascript
教你搭建按需加载的Vue组件库(小结)
2019/07/29 Javascript
原生js实现二级联动菜单
2019/11/27 Javascript
Python中用max()方法求最大值的介绍
2015/05/15 Python
python将回车作为输入内容的实例
2018/06/23 Python
Python测试网络连通性示例【基于ping】
2018/08/03 Python
Python命令行click参数用法解析
2019/12/19 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
2020/01/21 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
html5中canvas学习笔记1-画板的尺寸与实际显示尺寸
2013/01/06 HTML / CSS
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
如何在Shell脚本中使用函数
2015/09/06 面试题
小学数学国培感言
2014/03/10 职场文书
教师一帮一活动总结
2014/07/08 职场文书
2014院党委领导班子及其成员群众路线对照检查材料思想汇报
2014/10/04 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
2015年计划生育协会工作总结
2015/05/13 职场文书
婚礼男方父母答谢词
2015/09/29 职场文书
2016计算机专业毕业生自荐信
2016/01/28 职场文书
python爬取企查查企业信息之selenium自动模拟登录企查查
2021/04/08 Python