小程序如何获取多个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作用域容易记错的两个地方分析
Jun 22 Javascript
js Dialog 实践分享
Oct 22 Javascript
jsPDF导出pdf示例
May 02 Javascript
JQuery以JSON方式提交数据到服务端示例代码
May 05 Javascript
js面向对象的写法
Feb 19 Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
Aug 19 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
May 05 jQuery
vue高德地图之玩转周边
Jun 16 Javascript
JavaScript基础之this和箭头函数详析
Sep 05 Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
Sep 25 Javascript
ES2020 新特性(种草)
Jan 12 Javascript
jQuery编写QQ简易聊天框
Aug 27 jQuery
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基于imap获取邮件实例
2014/11/11 PHP
Laravel 5框架学习之环境与配置
2015/04/08 PHP
使用php实现从身份证中提取生日
2016/05/09 PHP
ThinkPHP5框架缓存查询操作分析
2018/05/30 PHP
Laravel框架模型的创建及模型对数据操作示例
2019/05/07 PHP
php解决crontab定时任务不能写入文件问题的方法分析
2019/09/16 PHP
Javascript调用XML制作连动下拉列表框
2006/06/25 Javascript
javascript中获取选中对象的类型
2007/04/02 Javascript
JSDoc 介绍使用规范JsDoc的使用介绍
2011/02/12 Javascript
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
js实现n秒倒计时后才可以点击的效果
2015/12/20 Javascript
jQuery使用cookie与json简单实现购物车功能
2016/04/15 Javascript
Bootstrap开关(switch)控件学习笔记分享
2016/05/30 Javascript
AngularJS 中ui-view传参的实例详解
2017/08/25 Javascript
利用js编写网页进度条效果
2017/10/08 Javascript
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
2017/12/15 Javascript
vue实现随机验证码功能的实例代码
2019/04/30 Javascript
简单了解微信小程序的目录结构
2019/07/01 Javascript
详解element-ui中表单验证的三种方式
2019/09/18 Javascript
微信小程序 wxParse插件显示视频问题
2019/09/27 Javascript
如何构建一个Vue插件并生成npm包
2020/10/26 Javascript
Python基于socket模块实现UDP通信功能示例
2018/04/10 Python
Python实现决策树并且使用Graphviz可视化的例子
2019/08/09 Python
Pytest框架之fixture的详细使用教程
2020/04/07 Python
使用keras时input_shape的维度表示问题说明
2020/06/29 Python
CSS3弹性盒模型开发笔记(二)
2016/04/26 HTML / CSS
Java里面如何创建一个内部类的实例
2015/01/19 面试题
股东合作协议书范本
2014/04/14 职场文书
大学生入党推荐书范文
2014/05/17 职场文书
跳槽求职信范文
2014/05/26 职场文书
运动会口号16字
2014/06/07 职场文书
领导班子四风表现材料
2014/08/23 职场文书
2014学生会工作总结报告
2014/12/02 职场文书
2015年幼儿园德育工作总结
2015/05/25 职场文书
党支部季度考核意见
2015/06/02 职场文书
MYSQL常用函数介绍
2022/05/05 MySQL