微信小程序之表单提交
页面绑定很多事件!
<view class="content">
<view class="user personal_func_list">
<view class="flex align-c personal_func_item">
<view class="name">
<text>品牌</text>
</view>
<view class="input flex_1">
<picker bindchange="brandPickerChange" value="{{brand_index}}" range-key="name" range="{{brand_array}}">
<view class="picker">
{{brand_array[brand_index].name}}
</view>
</picker>
</view>
</view>
<view class="flex align-c personal_func_item">
<view class="name">
<text>型号</text>
</view>
<view class="input flex_1">
<picker bindchange="modelPickerChange" value="{{model_index}}" range-key="name" range="{{model_array}}">
<view class="picker">
{{model_array[model_index].name}}
</view>
</picker>
</view>
</view>
<view class="flex align-c personal_func_item">
<view class="name">
<text>姓名</text>
</view>
<view class="input flex_1">
<input placeholder="请输入真实姓名" bindinput="keyName" />
</view>
</view>
<view class="flex align-c personal_func_item">
<view class="name">
<text>电话</text>
</view>
<view class="input flex_1">
<input placeholder="请输入手机号码" bindinput="keyPhone" />
</view>
</view>
<view class="flex align-c personal_func_item">
<view class="name">
<text>地址</text>
</view>
<view class="input flex_1">
<input placeholder="请输入地址" bindinput="keyAddress" />
</view>
</view>
<view class="flex align-c personal_func_item">
<view class="name">
<text>故障原因</text>
</view>
<view class="input flex_1">
<input placeholder="请输入故障原因" bindinput="keyReason" />
</view>
</view>
</view>
<button class="sub_btn background_color_beauty" bindtap="applyAfterSale">提交</button>
</view>
JS处理很多数据获取与提交!
// pages/mine/index.js
const Api = require("../../config/method.js");
const Session = require('../../common/auth/session')
const tips = require('../../common/tips.js');
const app = getApp();
const session = Session.get();
Page({
data: {
brand_array: [],
brand_index: 0,
model_array:[],
model_index: 0,
brand_id : 0,
model_id : 0,
realname:'',
tel:'',
address:'',
reason:''
},
onLoad: function (options) {
// 页面初始化 options为页面跳转所带来的参数
this.init();
},
onReady: function () {
// 页面渲染完成
},
onShow: function () {
// 页面显示
this.init();
},
onHide: function () {
// 页面隐藏
},
onUnload: function () {
// 页面关闭
},
init: function () {
let self = this;
let session = Session.get();
if (session && session.uid) {
// 获取品牌数据
Api.GetBrandList({}).then(res=>{
self.setData({
brand_array:res.data,
brand_id : res.data[0]['brand_id']
})
// 获取型号数据
Api.GetModelList({'brand_id':self.data.brand_id}).then(res=>{
self.setData({
model_array : res.data,
model_id: res.data[0]['model_id']
})
})
})
} else {
tips.showAction('系统提示','您还没有登录, 请先登录?',()=>{
let url = '/pages/mine/index'
wx.switchTab({ url })
});
}
},
brandPickerChange: function(e) {
let self = this;
let brand_index = e.detail.value;
let brand_id = self.data.brand_array[brand_index]['brand_id'];
this.setData({
brand_index: brand_index,
brand_id:brand_id
})
// 获取型号数据
Api.GetModelList({'brand_id':brand_id}).then(res=>{
self.setData({
model_array : res.data,
model_id: res.data[0]['model_id'],
model_index : 0
})
})
},
modelPickerChange: function(e) {
let self = this;
let model_index = e.detail.value;
let model_id = self.data.model_array[model_index]['model_id'];
this.setData({
model_index: model_index,
model_id:model_id
})
},
keyName :function(e) {
let { value } = e.detail;
this.setData({
realname:value
})
},
keyPhone :function(e) {
let { value } = e.detail;
this.setData({
tel:value
})
},
keyAddress :function(e) {
let { value } = e.detail;
this.setData({
address:value
})
},
keyReason :function(e) {
let { value } = e.detail;
this.setData({
reason:value
})
},
applyAfterSale : function() {
// 判断参数是否传递
var self = this;
const session = Session.get();
let uid = session.uid;
let {brand_id,model_id,realname,tel,address,reason} = this.data;
if(!brand_id||!model_id||!realname||!tel||!address||!reason){
tips.showModel('系统提示','请完善信息');
return;
}
Api.ApplyAfterSale({ uid, realname,tel,brand_id,model_id,address,reason }).then(res=>{
console.log(JSON.stringify(res));
if (res.errno == 0) {
tips.showSuccess('申请成功!');
setTimeout(function () {
wx.switchTab({
url: '/pages/mine/index'
})
}, 1000)
} else {
tips.showModel('系统提示',res.errdesc);
}
})
},
onShareAppMessage: function () {
// 设置了,页面才可以分享
return {
title: '屹族',
desc: '屹族小程序商铺',
path: '/pages/index/index'
}
}
})
微信小程序之表单提交的更多相关文章
- 2017-01-11小程序form表单提交
小程序form表单提交 1.小程序相对于之前的WEB+PHP建站来说,个人理解为只是将web放到了微信端,用小程序固定的格式前前端进行布局.事件触发和数据的输送和读取,服务器端可以用任何后端语言写,但 ...
- 微信小程序-form表单-获取用户输入文本框的值
微信小程序-form表单-获取用户输入文本框的值 <input name='formnickname' class="textarea" placeholder=" ...
- 微信小程序之表单验证
表单验证 何为表单验证呢? 百度百科给出的回答是这样的: 表单验证是javascript中的高级选项之一.JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证 [ ...
- 微信小程序_(表单组件)checkbox与label
微信小程序组件checkbox官方文档 传送门 微信小程序组件label官方文档 传送门 Learn 一.checkbox组件 二.label组件与checkbox组件共用 一.checkbox组件 ...
- 微信小程序_(表单组件)button组件的使用
微信小程序表单组件button官方文档 传送门 Learn 一.button组件的使用 一.button组件的使用 size:按钮的大小[默认值default] type:按钮的样式类型[默认值def ...
- 微信小程序常用表单校验方法(手机号校验、身份证号(严格和非严格校验、验证码六位数字校验))
util.js function isPhone(value) { if (!/^1(3|4|5|7|8)\d{9}$/.test(value)) { return false } else { re ...
- 「小程序JAVA实战」小程序的表单组件(25)
转自:https://idig8.com/2018/08/18/xiaochengxujavashizhanxiaochengxudebiaodanzujian25/ 来说下 ,小程序的基础组件.源码 ...
- 原创:经验分享:微信小程序外包接单常见问题及流程
从九月底内测到现在已经三个半月.凌晨一点睡觉已经习以为常,也正是这样,才让无前端经验的我做微信小程序开发并不感到费劲.最近才开始接微信小程序的外包项目,目前已经签下了五份合同,成品出了两个.加上转给朋 ...
- [转]经验分享:微信小程序外包接单常见问题及流程
本文转自:https://www.cnblogs.com/wxapp-union/p/6245301.html 从九月底内测到现在已经三个半月.凌晨一点睡觉已经习以为常,也正是这样,才让无前端经验的我 ...
随机推荐
- c 结构体中存在指针,指针的不同赋值方法
#include<stdio.h>#include<stdlib.h>#include<string.h>struct parameter{ char *fd; i ...
- void与其他类型的转化
#include<stdio.h> void f(void *a) { printf("%d\n",a); } int main() { int b=10; f(b); ...
- python 爬虫001-http请求过程
HTTP 请求流程 一次完整的HTTP请求过程从TCP三次握手建立连接成功后开始,客户端按照指定的格式开始向服务端发送HTTP请求,服务端接收请求后,解析HTTP请求,处理完业务逻辑,最后返回一个HT ...
- 计蒜客button 概率
中文题意不多说,这题主要是数据太大,无法递推,所以用欧拉常数来解决 对于调和级数1/1+1/2+...+1/n=ln(n)+C+1/(2*n),C为欧拉常数,再加上ceil向上取整就可以了 #incl ...
- Week2《Java程序设计》第二周学习总结
Week02-Java学习笔记2 1. 本周学习总结 本周学习了java的基本语法与类库,其中介绍了基本数据类型和引用类型,介绍了String类,String对象的拼接以及String的一些常用方法: ...
- 【tensorflow:Google】一、深度学习简介
参考文献:<Tensorflow:实战Google深度学习框架> [一]深度学习简介 1.1 深度学习定义 Mitchell对机器学习的定义:任务T上,随着经验E的增加,效果P也可以随之增 ...
- H5 pattern
pattern:正则表达式验证 例如: <input pattern="1[3578]\d{9}"> 可以省略^和$ 必须和required配合使用,否则在用户没有输 ...
- kali视频(16-20)学习
第五周 kali视频(16-20)学习 16.漏洞分析之数据库评估(一) 17.漏洞分析之数据库评估(二) 18.漏洞分析之WEB应用代理 19.漏洞分析之burpsuite 20.漏洞分析之fuzz ...
- 【mssql】SQL Server2012编程入门经典(第四版)(上) 读书笔记
数据库用了很久了,但好多东西很容易忘记,这次头脑发热想起来读一遍书,做点笔记! 从第五章开始参考:<SQL Server 2005 编程入门经典>学习笔记 一.RDBMS基础:SQL Se ...
- GDI与OpenGL与DirectX之间的区别
图形编程的几种技术对比: GDI,图形设备接口,MS开发的通用的windows系统图形编程接口,功能强涉及面广,一般的编程都用它.但是用来做多媒体开发就差强人意了 OPENGL是SGI开发的一套三维图 ...