小程序如何获取多个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 cookies 设置、读取、删除实例代码
Apr 12 Javascript
js判断FCKeditor内容是否为空的两种形式
May 14 Javascript
JavaScript判断变量是否为空的自定义函数分享
Jan 31 Javascript
javascript实现字符串反转的方法
Feb 05 Javascript
AngularJS ngModel实现指令与输入直接的数据通信
Sep 21 Javascript
Javascript+CSS3实现进度条效果
Oct 28 Javascript
vue2.0父子组件间通信的实现方法
Apr 19 Javascript
js前端实现图片懒加载(lazyload)的两种方式
Apr 24 Javascript
npm 更改默认全局路径以及国内镜像的方法
May 16 Javascript
详解mpvue开发小程序小总结
Jul 25 Javascript
jQuery 实现倒计时天,时,分,秒功能
Jul 31 jQuery
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
Aug 25 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代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
php之Smarty模板使用方法示例详解
2014/07/08 PHP
yii2使用ajax返回json的实现方法
2016/05/14 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
javascript AOP 实现ajax回调函数使用比较方便
2010/11/20 Javascript
JS获取后台Cookies值的小例子
2013/03/04 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
2016/01/23 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
2016/09/20 Javascript
js 提交form表单和设置form表单请求路径的实现方法
2016/10/25 Javascript
完全深入学习Bootstrap表单
2016/11/28 Javascript
nodejs服务搭建教程 nodejs访问本地站点文件
2017/04/07 NodeJs
JavaScript数据结构之双向链表定义与使用方法示例
2017/10/27 Javascript
微信小程序录音实现功能并上传(使用node解析接收)
2020/02/26 Javascript
jquery实现上传文件进度条
2020/03/26 jQuery
jQuery实现移动端笔触canvas电子签名
2020/05/21 jQuery
爬山算法简介和Python实现实例
2014/04/26 Python
python的变量与赋值详细分析
2017/11/08 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
python使用xpath中遇到:到底是什么?
2018/01/04 Python
纯用NumPy实现神经网络的示例代码
2018/10/24 Python
python 运用Django 开发后台接口的实例
2018/12/11 Python
wxpython多线程防假死与线程间传递消息实例详解
2019/12/13 Python
使用python的pyplot绘制函数实例
2020/02/13 Python
Python如何用wx模块创建文本编辑器
2020/06/07 Python
python属于解释型语言么
2020/06/15 Python
Python获取excel内容及相关操作代码实例
2020/08/10 Python
css3绘制百度的小度熊
2018/10/29 HTML / CSS
公务员培训自我鉴定
2013/09/19 职场文书
金融专业推荐信
2013/11/14 职场文书
化工专业大学生职业生涯规划书
2014/01/14 职场文书
办理居住证介绍信
2014/01/15 职场文书
企业演讲稿范文大全
2014/05/20 职场文书
跳槽求职信范文
2014/05/26 职场文书
考研导师推荐信范文
2015/03/27 职场文书
交通安全教育心得体会
2016/01/15 职场文书