小程序如何获取多个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同时控制四张图片的伸缩实现代码
Apr 19 Javascript
jQuery插件的写法分享
Jun 12 Javascript
js data日期初始化的5种方法
Dec 29 Javascript
JavaScript使用focus()设置焦点失败的解决方法
Sep 03 Javascript
Javascript操作表单实例讲解(下)
Jun 20 Javascript
javascript数组常用方法汇总
Sep 10 Javascript
js实现百度登录框鼠标拖拽效果
Mar 07 Javascript
vue2.0 computed 计算list循环后累加值的实例
Mar 07 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
Sep 03 Javascript
javascript面向对象创建对象的方式小结
Jul 29 Javascript
Vue实现手机号、验证码登录(60s禁用倒计时)
Dec 19 Vue.js
vue 中 get / delete 传递数组参数方法
Mar 23 Vue.js
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
BBS(php &amp; mysql)完整版(一)
2006/10/09 PHP
实用函数10
2007/11/08 PHP
php+mysql删除指定编号员工信息的方法
2015/01/14 PHP
详解PHP中的状态模式编程
2015/08/11 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
2016/12/23 PHP
jquery ajax 登录验证实现代码
2009/09/23 Javascript
关于Javascript与iframe的那些事儿
2013/07/04 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
2014/10/17 Javascript
纯Javascript实现ping功能的方法
2015/03/20 Javascript
初步认识JavaScript函数库jQuery
2015/06/18 Javascript
微信企业号开发之微信考勤百度地图定位
2015/09/11 Javascript
jQuery Validate格式验证功能实例代码(包括重名验证)
2017/07/18 jQuery
JavaScript寄生组合式继承实例详解
2018/01/06 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
2018/01/09 Javascript
详解Nuxt.js部署及踩过的坑
2018/08/07 Javascript
iView框架问题整理小结
2018/10/16 Javascript
Vue实现数据表格合并列rowspan效果
2020/11/30 Javascript
[10:34]DOTA2上海特级锦标赛全纪录
2016/03/25 DOTA
[05:03]2018DOTA2亚洲邀请赛主赛事首日回顾
2018/04/04 DOTA
[00:06]Yes,it worked!小卡尔成功穿越时空加入战场!
2019/07/20 DOTA
Python中的字符串类型基本知识学习教程
2016/02/04 Python
Python爬虫实例扒取2345天气预报
2018/03/04 Python
Python列表的切片实例讲解
2019/08/20 Python
关于Python字符串显示u...的解决方式
2020/03/06 Python
Python semaphore evevt生产者消费者模型原理解析
2020/03/18 Python
Python3 pickle对象串行化代码实例解析
2020/03/23 Python
如何使用Python处理HDF格式数据及可视化问题
2020/06/24 Python
Kipling意大利官网:世界著名的时尚休闲包袋品牌
2019/06/05 全球购物
龟牌英国商店:Turtle Wax Brand Store UK
2019/07/02 全球购物
Whistles官网:英国女装品牌
2020/08/14 全球购物
在求职信中如何凸显个人优势
2013/10/30 职场文书
捐款感谢信
2015/01/20 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书
政协工作总结2015
2015/05/20 职场文书
MySQL通过binlog恢复数据
2021/05/27 MySQL