小程序如何获取多个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扩展漂亮的CheckBox(自己编写)
Nov 19 Javascript
js控制输入框获得和失去焦点时状态显示的方法
Jan 30 Javascript
JavaScript中字符串(string)转json的2种方法
Jun 25 Javascript
JS解决移动web开发手机输入框弹出的问题
Mar 31 Javascript
angularjs下拉框空白的解决办法
Jun 20 Javascript
vue+axios 前端实现的常用拦截的代码示例
Aug 23 Javascript
详解Vue中使用插槽(slot)、聚类插槽
Apr 12 Javascript
JS使用正则表达式提交页面验证的代码
Oct 16 Javascript
微信小程序自定义模态弹窗组件详解
Dec 24 Javascript
JSONP 的原理、理解 与 实例分析
May 16 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
Oct 22 Javascript
关于angular 8.1使用过程中的一些记录
Nov 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人民币金额数字转中文大写的函数代码
2013/02/27 PHP
PHP字符串长度计算 - strlen()函数使用介绍
2013/10/15 PHP
php实现两表合并成新表并且有序排列的方法
2014/12/05 PHP
php抽象类用法实例分析
2015/07/07 PHP
通过PHP简单实例介绍文件上传
2015/12/16 PHP
XHProf报告字段含义的解析
2016/05/17 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
JS实现图片翻书效果示例代码
2013/09/09 Javascript
javascript自定义in_array()函数实现方法
2015/08/03 Javascript
基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式
2015/10/28 Javascript
深入理解JS中的Function.prototype.bind()方法
2016/10/11 Javascript
利用JS实现简单的日期选择插件
2017/01/23 Javascript
理解javascript async的用法
2017/08/22 Javascript
JavaScript中引用vs复制示例详析
2018/12/06 Javascript
使用Angular自定义字段校验指令的方法示例
2019/02/01 Javascript
解决vue打包后刷新页面报错:Unexpected token
2019/08/27 Javascript
解决vant title-active-color与title-inactive-color不生效问题
2020/11/03 Javascript
[00:32]2018DOTA2亚洲邀请赛Mineski出场
2018/04/04 DOTA
[48:21]Mski vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
Python中使用Queue和Condition进行线程同步的方法
2016/01/19 Python
python的Crypto模块实现AES加密实例代码
2018/01/22 Python
Python对ElasticSearch获取数据及操作
2019/04/24 Python
python实现倒计时小工具
2019/07/29 Python
python__name__原理及用法详解
2019/11/02 Python
Django认证系统user对象实现过程解析
2020/03/02 Python
jupyter notebook 增加kernel教程
2020/04/10 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
2021/02/01 Python
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
东方通信股份有限公司VC面试题
2014/08/27 面试题
我的梦想演讲稿
2014/04/30 职场文书
关于保护环境的建议书
2014/05/13 职场文书
英语课外活动总结
2014/08/27 职场文书
个人诉讼委托书范本
2014/10/17 职场文书
2014年法院工作总结
2014/11/24 职场文书
react合成事件与原生事件的相关理解
2021/05/13 Javascript