页面绑定很多事件!

<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'
}
}
})

微信小程序之表单提交的更多相关文章

  1. 2017-01-11小程序form表单提交

    小程序form表单提交 1.小程序相对于之前的WEB+PHP建站来说,个人理解为只是将web放到了微信端,用小程序固定的格式前前端进行布局.事件触发和数据的输送和读取,服务器端可以用任何后端语言写,但 ...

  2. 微信小程序-form表单-获取用户输入文本框的值

    微信小程序-form表单-获取用户输入文本框的值 <input name='formnickname' class="textarea" placeholder=" ...

  3. 微信小程序之表单验证

    表单验证 何为表单验证呢? 百度百科给出的回答是这样的: 表单验证是javascript中的高级选项之一.JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证 [ ...

  4. 微信小程序_(表单组件)checkbox与label

    微信小程序组件checkbox官方文档 传送门 微信小程序组件label官方文档 传送门 Learn 一.checkbox组件 二.label组件与checkbox组件共用 一.checkbox组件 ...

  5. 微信小程序_(表单组件)button组件的使用

    微信小程序表单组件button官方文档 传送门 Learn 一.button组件的使用 一.button组件的使用 size:按钮的大小[默认值default] type:按钮的样式类型[默认值def ...

  6. 微信小程序常用表单校验方法(手机号校验、身份证号(严格和非严格校验、验证码六位数字校验))

    util.js function isPhone(value) { if (!/^1(3|4|5|7|8)\d{9}$/.test(value)) { return false } else { re ...

  7. 「小程序JAVA实战」小程序的表单组件(25)

    转自:https://idig8.com/2018/08/18/xiaochengxujavashizhanxiaochengxudebiaodanzujian25/ 来说下 ,小程序的基础组件.源码 ...

  8. 原创:经验分享:微信小程序外包接单常见问题及流程

    从九月底内测到现在已经三个半月.凌晨一点睡觉已经习以为常,也正是这样,才让无前端经验的我做微信小程序开发并不感到费劲.最近才开始接微信小程序的外包项目,目前已经签下了五份合同,成品出了两个.加上转给朋 ...

  9. [转]经验分享:微信小程序外包接单常见问题及流程

    本文转自:https://www.cnblogs.com/wxapp-union/p/6245301.html 从九月底内测到现在已经三个半月.凌晨一点睡觉已经习以为常,也正是这样,才让无前端经验的我 ...

随机推荐

  1. hive 导出数据到本地

    有时候需要将hive库中的部分数据导入至本地,这样子做可视化和小规模的数据挖掘实验都是比较方便的.数据导入至本地的HQL语法如下: INSERT OVERWRITE [LOCAL] DIRECTORY ...

  2. spring学习(6)

    1 spring概念 (1)spring核心两部分 (2)spring一站式框架 (3)spring版本 可以使用基本的javaBean代替EJB,EJB是重量级框架. 1 spring是一个开源的轻 ...

  3. 新东方雅思词汇---7.4、cap

    新东方雅思词汇---7.4.cap 一.总结 一句话总结: 抓住 capable 英 ['keɪpəb(ə)l]  美 ['kepəbl]  adj. 能干的,能胜任的:有才华的 词组短语 capab ...

  4. SQL命令查询Oracle存储过程信息(代码内容等)

    SELECT * FROM ALL_SOURCE  where TYPE='PROCEDURE'  AND TEXT LIKE '%0997500%'; --查询ALL_SOURCE中,(脚本代码)内 ...

  5. yii2输出sql

    yii2如何输出sql语句? 单表查询sql: 我的model是:coupon,那么sql输出为: $a = coupon::find()->createCommand()->getRaw ...

  6. Python — List、Set、Tuple、Dictionary之间的区别、参数传递

    1.list 列表 有序集合,随时增删.包含的数据类型可以不同:整数.浮点数.字符串.list.tuple.dict.set.bool.空值.常量. list = [12, 'Yummy', 19.2 ...

  7. nyoj-1316-二分

    acm.nyist.edu.cn/JudgeOnline/problem.php?pid=1316题目链接 Interval 时间限制:2000 ms  |  内存限制:65535 KB 难度:3 描 ...

  8. Redis 有序集合(sorted set),发布订阅,事务,脚本,连接,服务器(三)

    Redis 有序集合(sorted set) Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过 ...

  9. LeetCode OJ:Maximum Product Subarray(子数组最大乘积)

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  10. [转载]Python注册表信息丢失的解决方案

    今天安装Python的模块时,安装失败,提示信息:Python version 2.7 required, which was not found in the registry. 原因在于Pytho ...