微信小程序提交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 编程引入命名空间的方法
Jun 29 Javascript
IE JS编程需注意的内存释放问题
Jun 23 Javascript
js select常用操作控制代码
Mar 16 Javascript
Javascript实现简单二级下拉菜单实例
Jun 15 Javascript
jQuery采用连缀写法实现的折叠菜单效果
Sep 18 Javascript
Javascript中的arguments对象
Jun 20 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
Jan 19 Javascript
swiper 自动图片无限轮播实现代码
May 21 Javascript
微信小程序textarea层级过高的解决方法
Mar 04 Javascript
vue 路由守卫(导航守卫)及其具体使用
Feb 25 Javascript
Vue实现点击导航栏当前标签后变色功能
Aug 19 Javascript
javascript实现多边形碰撞检测
Oct 24 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
从刷票了解获得客户端IP的方法
2015/09/21 PHP
php检查页面是否被百度收录
2015/10/28 PHP
PHP函数nl2br()与自定义函数nl2p()换行用法分析
2016/04/02 PHP
php自定义函数实现统计中文字符串长度的方法小结
2017/04/15 PHP
关于PHP转换超过2038年日期出错的问题解决
2017/06/28 PHP
PHP fclose函数用法总结
2019/02/15 PHP
javascript 原型继承介绍
2011/08/30 Javascript
javascript时间自动刷新实现原理与步骤
2013/01/06 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
2015/08/12 Javascript
使用 stylelint检查CSS_StyleLint
2016/04/28 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
JS验证input输入框(字母,数字,符号,中文)
2017/03/23 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
js实现前端图片上传即时预览功能
2017/08/02 Javascript
Angular.js中window.onload(),$(document).ready()的写法浅析
2017/09/28 Javascript
详解javascript appendChild()的完整功能
2018/08/18 Javascript
15个顶级开源JavaScript框架和库
2018/10/10 Javascript
学习LayUI时自研的表单参数校验框架案例分析
2019/07/29 Javascript
使用Vant完成Dialog弹框案例
2020/11/11 Javascript
如何在vue中使用HTML 5 拖放API
2021/01/14 Vue.js
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
2014/05/23 Python
Eclipse中Python开发环境搭建简单教程
2016/03/23 Python
Python的Flask框架中集成CKeditor富文本编辑器的教程
2016/06/13 Python
python爬虫入门教程--正则表达式完全指南(五)
2017/05/25 Python
75条笑死人的知乎神回复,用60行代码就爬完了
2019/05/06 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
2019/08/09 Python
Python使用get_text()方法从大段html中提取文本的实例
2019/08/27 Python
使用Python打造一款间谍程序的流程分析
2020/02/21 Python
解决Django no such table: django_session的问题
2020/04/07 Python
Python中的None与 NULL(即空字符)的区别详解
2020/09/24 Python
中学优秀班主任事迹材料
2014/05/01 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
环境建议书
2015/02/04 职场文书
2016年质量月活动总结报告
2016/04/05 职场文书
MySQL为数据表建立索引的原则详解
2022/03/03 MySQL