小程序如何获取多个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 相关文章推荐
js操作IE浏览器弹出浏览文件夹可以返回目录路径
Jul 14 Javascript
jquery手风琴特效插件
Feb 04 Javascript
JS获取下拉框显示值和判断单选按钮的方法
Jul 09 Javascript
基于jquery实现的树形菜单效果代码
Sep 06 Javascript
如何通过js实现图片预览功能【附实例代码】
Mar 30 Javascript
jquery,js简单实现类似Angular.js双向绑定
Jan 13 Javascript
js 调用百度分享功能
Feb 27 Javascript
使用JS在浏览器中判断当前网络连接状态的几种方法
May 05 Javascript
深入浅析vue组件间事件传递
Dec 29 Javascript
使用Node.js实现一个多人游戏服务器引擎
Mar 13 Javascript
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
Jul 06 Javascript
layui自定义工具栏的方法
Sep 19 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
收音机的保养
2021/03/01 无线电
php setcookie(name, value, expires, path, domain, secure) 参数详解
2013/06/28 PHP
Windows7下的php环境配置教程
2015/02/28 PHP
php使用memcoder将视频转成mp4格式的方法
2015/03/12 PHP
PHP实现链式操作的原理详解
2016/09/16 PHP
Netbeans 8.2与PHP相关的新特性介绍
2016/10/08 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
2016/12/02 PHP
PHP实现倒计时功能
2020/11/16 PHP
Javascript面向对象设计一 工厂模式
2011/12/20 Javascript
购物车选中得到价格实现示例
2014/01/26 Javascript
jquery提交form表单简单示例分享
2014/03/03 Javascript
jquery实现类似淘宝星星评分功能有截图
2014/09/15 Javascript
jQuery实现点击按钮弹出可关闭层的浮动层插件
2015/09/19 Javascript
jQuery ztree实现动态树形多选菜单
2016/08/12 Javascript
详解Node.js如何开发命令行工具
2016/08/14 Javascript
面试常见的js算法题
2017/03/23 Javascript
原生JS实现自定义滚动条效果
2020/10/27 Javascript
js原生日历的实例(推荐)
2017/10/31 Javascript
使用Vue组件实现一个简单弹窗效果
2018/04/23 Javascript
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
VUE 动态组件的应用案例分析
2019/12/02 Javascript
Python使用MYSQLDB实现从数据库中导出XML文件的方法
2015/05/11 Python
使用python 写一个静态服务(实战)
2019/06/28 Python
python制作一个简单的gui 数据库查询界面
2020/11/19 Python
如何用Matlab和Python读取Netcdf文件
2021/02/19 Python
CSS3弹性布局内容对齐(justify-content)属性使用详解
2017/07/31 HTML / CSS
Perfume’s Club美国官网:西班牙第一家在线美容店
2020/06/10 全球购物
.NET remoting中对象激活的两种方式
2015/06/08 面试题
中英文求职信范文
2014/01/27 职场文书
不打扫卫生检讨书
2014/02/12 职场文书
乡镇办公室工作决心书
2014/03/11 职场文书
党员对照检查材料
2014/09/22 职场文书
房屋买卖协议样本
2014/11/16 职场文书
公司宣传语大全
2015/07/13 职场文书
电力培训学习心得体会
2016/01/11 职场文书
Opencv中cv2.floodFill算法的使用
2021/06/18 Python