微信小程序之表单提交
页面绑定很多事件!
<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 从九月底内测到现在已经三个半月.凌晨一点睡觉已经习以为常,也正是这样,才让无前端经验的我 ...
随机推荐
- 遍历jsonArray和jsonObject
遍历jsonArray String str = "[{name:'a',value:'aa'},{name:'b',value:'bb'},{name:'c',value:'cc'}]&q ...
- 通用 mysql配置
windows:my.ini [mysqld] # Remove leading # and set to the amount of RAM for the most important data ...
- Updated: Database Partitioning with EBS Whitepaper
Partitioning allows a single database table and its associated indexes to be broken into smaller com ...
- Superset 初探
安装都是借鉴的别人的,已经剪裁下来.到自己文件夹里了. 下面介绍.如何启动superset ,BI 分析工具.这是我以前的强项.应该没问题. 问题: 安装好了之后,再打开localhost 就拒绝访问 ...
- #define GPFCON (* (volatile unsigned long * )0x56000050 )
int a; int *p; p = &a; *p = 0x100; //a=0x100 p = (int *)0x56000050; *p =0x100; *( ( int * ) 0x56 ...
- python练习题100例
链接地址:http://www.runoob.com/python/python-100-examples.html
- WAL日志文件名称格式详解
转自:http://blog.osdba.net/534.html WAL日志文件名称格式详解 PostgreSQL的WAL日志文件在pg_xlog目录下,一般情况下,每个文件为16M大小: osdb ...
- Arcgis Add-In开发入门实例
作为一个本科侧重于应用,工作之后却做了开发的程序员来说,做GIS,开发应该是一门必修课,只是,苦于各种原因吧,做GIS应用的人会开发的很少,做GIS开发的大部分都是计算机出身,痛心疾首啊-- 不好意思 ...
- [emwin]关于渐变色使用须知
由于需要用到渐变色,且出现问题,所以对渐变色有了解. 相关函数 GUI_DrawGradientV GUI_DrawGradientH 须知: 1.渐变色在565色和888色下的显示完全不一样.在模拟 ...
- sublime 非常好用的注释工具
Sublime在进行前端开发时非常棒,当然也少不了众多的插件支持,DocBlocker是在Sublime平台上开发一款自动补全代码插件,支持JavaScript (including ES6), PH ...