微信小程序提交form操作示例


Posted in Javascript onDecember 30, 2018

本文实例讲述了微信小程序提交form操作。分享给大家供大家参考,具体如下:

在微信小程序中也存在form组件,bindsubmit这个属性可以用于携带 form 中的数据触发 submit 事件,它鞋带的参数形式如下:

event.detail = {value : {'name': 'value'} , formId: ''}

其中的name,和一般的网页一样,将需要上传的input等表单组件设置name属性,在这里,form传递的参数,使用name作为一个key

提交动作是由<form/> 表单中 formType 为 submit 的 <button/> 组件来控制的,示例如下:

<button form-type="submit" class='search'><span>开始计算</span></button>

当点击这个button时,会触发bindsubmit绑定的js文件中的事件,例如:

<form bindsubmit="formSubmit" bindreset="formReset"> 
<input type="text" name="price"/>
<button form-type="submit" class='search'><span>开始计算</span></button>
</form>

在这里,点击这个button则会调用js中的formSubmit,同时在formSubmit事件中可以用e.detail.value.price的方式获取name为price的组件的value值,js中formSubmit的定义如下:

formSubmit: function (e) {
 this.setData({
  price: e.detail.value.price, //用e.detail.value.price,获取了form中name为price组件的value,赋值给js文件data中定义的price变量
 })
 var that = this; //在success部分,this失效,需要先将this赋值给that,通过调用that代替this比如:that.setData({})
 wx.request({ //使用微信提供的wx.request完成信息交互
  url: config.service.XXXX, //url的值统一定义在了configuration.js中,在本js开始时var config = require('../../config');引入
  header: {
   "Content-Type": "application/x-www-form-urlencoded" //使用form方式传递参数
  },
  method: "POST",
  dataType:"json",
  data: Util.json2Form({ price: this.data.price }), //将要传递的数据使用util.js中的json2Form转为标注的form数据格式
  success: function (res) { //res是返回的数据,success是响应成功后执行部分
   console.log(res.data) //显示res中携带的数据
  },
  complete: function (res) { // complete类似finally,最后必然执行
   if (res == null || res.data == null) { //如果返回值为空,则提示网络请求失败
   console.error('网络请求失败');
   return;
   }
  }
  })
 },

util.js的内容:

function json2Form(json) {
 var str = [];
 for (var p in json) {
 str.push(encodeURIComponent(p) + "=" + encodeURIComponent(json[p]));
 }
 return str.join("&");
}
module.exports = {
 json2Form: json2Form,
}

wx.request也可以使用功能json格式传输数据,但是个人后台不太习惯处理json文件

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
javascript在IE下trim函数无法使用的解决方法
Sep 12 Javascript
js实现将选中值累加到文本框的方法
Aug 12 Javascript
jquery实现的Banner广告收缩效果代码
Sep 02 Javascript
jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)
Oct 28 Javascript
javascript自动恢复文本框点击清除后的默认文本
Jan 12 Javascript
js多功能分页组件layPage使用方法详解
May 19 Javascript
JS操作xml对象转换为Json对象示例
Mar 25 Javascript
详解ECMAScript6入门--Class对象
Apr 27 Javascript
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
Jun 13 Javascript
Vue按需加载的具体实现
Dec 02 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
Aug 28 Javascript
vue组件系列之TagsInput详解
May 14 Javascript
bootstrap下拉分页样式 带跳转页码
Dec 29 #Javascript
详解vue 兼容IE报错解决方案
Dec 29 #Javascript
玩转Koa之koa-router原理解析
Dec 29 #Javascript
Bootstrap Paginator+PageHelper实现分页效果
Dec 29 #Javascript
玩转Koa之核心原理分析
Dec 29 #Javascript
如何从0开始用node写一个自己的命令行程序
Dec 29 #Javascript
bootstrap与pagehelper实现分页效果
Dec 29 #Javascript
You might like
PHP邮件专题
2006/10/09 PHP
有关 PHP 和 MySQL 时区的一点总结
2008/03/26 PHP
在mysql数据库原有字段后增加新内容
2009/11/26 PHP
PHP扩展编写点滴 技巧收集
2010/03/09 PHP
php curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
2011/04/07 PHP
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
php下载文件,添加响应头的简单实例
2016/09/22 PHP
js 深拷贝函数
2008/12/04 Javascript
jquery Firefox3.5中操作select的问题
2009/07/10 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
html的DOM中document对象forms集合用法实例
2015/01/21 Javascript
NODE.JS跨域问题的完美解决方案
2016/10/20 Javascript
JS实现根据用户输入分钟进行倒计时功能
2016/11/14 Javascript
ES6/JavaScript使用技巧分享
2017/12/14 Javascript
JavaScript实现快速排序的方法分析
2018/01/10 Javascript
JS实现自定义弹窗功能
2018/08/08 Javascript
js取0-9随机取4个数不重复的数字代码实例
2019/03/27 Javascript
微信小程序8种数据通信的方式小结
2020/02/03 Javascript
element-ui tree结构实现增删改自定义功能代码
2020/08/31 Javascript
python实现爬虫统计学校BBS男女比例之数据处理(三)
2015/12/31 Python
python入门教程 python入门神图一张
2018/03/05 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
2018/09/25 Python
python3去掉string中的标点符号方法
2019/01/22 Python
Python操作多维数组输出和矩阵运算示例
2019/11/28 Python
python解析多层json操作示例
2019/12/30 Python
pycharm 关掉syntax检查操作
2020/06/09 Python
Pandas直接读取sql脚本的方法
2021/01/21 Python
致跳高运动员广播稿
2014/01/13 职场文书
行政办公室岗位职责
2014/03/18 职场文书
关于运动会广播稿300字
2014/10/05 职场文书
个人典型事迹材料
2014/12/30 职场文书
思想品德评语大全
2014/12/31 职场文书
行政人事主管岗位职责
2015/04/11 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书
SQL实现LeetCode(180.连续的数字)
2021/08/04 MySQL
 python中的元类metaclass详情
2022/05/30 Python