小程序如何获取多个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资料prototype 属性
Mar 13 Javascript
CSS+Jquery实现页面圆角框方法大全
Dec 24 Javascript
javascript动态加载三
Aug 22 Javascript
Jquery读取URL参数小例子
Aug 30 Javascript
Javascript封装DOMContentLoaded事件实例
Jun 12 Javascript
js实例属性和原型属性示例详解
Nov 23 Javascript
web前端设计师们常用的jQuery特效插件汇总
Dec 07 Javascript
JQuery动画与特效实例分析
Feb 02 Javascript
jQuery插件实现无缝滚动特效
Nov 24 Javascript
JavaScript学习笔记之数组求和方法
Mar 23 Javascript
关于JavaScript语句后面的分号问题
Dec 07 Javascript
JS运算符简单用法示例
Jan 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
php 正则表达式小结
2009/08/31 PHP
php随机取mysql记录方法小结
2014/12/27 PHP
jquery插件 autoComboBox 下拉框
2010/12/22 Javascript
扩展JavaScript功能的正确方法(译文)
2012/04/12 Javascript
javascript 快速排序函数代码
2012/05/30 Javascript
js不能跳转到上一页面的问题解决方法
2013/03/01 Javascript
JavaScript正则表达式之multiline属性的应用
2015/06/16 Javascript
javascript实现根据3原色制作颜色选择器的方法
2015/07/17 Javascript
JavaScript获取IP获取的是IPV6 如何校验
2016/06/12 Javascript
微信小程序  Mustache语法详细介绍
2016/10/27 Javascript
简单谈谈Javascript函数中的arguments
2017/02/09 Javascript
jQuery的中 is(':visible') 解析及用法(必看)
2017/02/12 Javascript
JavaScript中transform实现数字翻页效果
2017/03/08 Javascript
JS实现的简单分页功能示例
2018/08/23 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
0基础学习前端开发的一些建议
2020/07/14 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
[03:48]显微镜下的DOTA2第四期——TP动作
2014/06/20 DOTA
python3批量删除豆瓣分组下的好友的实现代码
2016/06/07 Python
利用python模拟sql语句对员工表格进行增删改查
2017/07/05 Python
Python 基础教程之闭包的使用方法
2017/09/29 Python
Python操作MySQL数据库的三种方法总结
2018/01/30 Python
Python jieba库用法及实例解析
2019/11/04 Python
Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决
2020/09/18 Python
python线程池 ThreadPoolExecutor 的用法示例
2020/10/10 Python
python使用requests库爬取拉勾网招聘信息的实现
2020/11/20 Python
Johnson Fitness澳大利亚:高级健身器材
2021/03/16 全球购物
什么是Smarty变量操作符?如何使用Smarty变量操作符
2014/07/18 面试题
MySQL面试题目集锦
2016/04/14 面试题
老教师工作总结的自我评价
2013/09/27 职场文书
信息与计算科学专业推荐信
2014/02/23 职场文书
《颐和园》教学反思
2014/02/26 职场文书
党的群众路线教育实践活动总结报告
2014/04/28 职场文书
个人思想政治总结
2015/03/05 职场文书
实习介绍信范文
2015/05/05 职场文书
redis cluster支持pipeline的实现思路
2021/06/23 Redis