页面绑定很多事件!

<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. Mybatis报错Cause: org.apache.ibatis.executor.ExecutorException: Executor was closed.

    SqlSession被关闭了,检查是否使用了被关闭的SqlSession.

  2. idea解决@Data注解报红问题

    lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具,简单来说,比如我们新建了一个类,然后在其中写了几个字段,然后通常情况下我们需要手动去建立ge ...

  3. mysql测试工具

    Super Smack安装和使用 . sysbench

  4. 【spark】共享变量

    Spark中的两个重要抽象是RDD和共享变量. 一般情况下,当Spark在集群的多个不同节点的多个任务上并行运行一个函数的时候, 它会把函数中涉及到的每个变量在每个节点每个任务上都生成一个副本. Sp ...

  5. 【51nod-1605】棋盘问题

    上帝创造了一个n*m棋盘,每一个格子都只有可能是黑色或者白色的. 亚当和夏娃在玩一个游戏,每次寻找边长为x的正方形,其中每个格子必须为黑色,然后将这些格子染白. 如果谁不能操作了,那么那个人就输了. ...

  6. Spring:org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class

    很长时间没有使用Spring,Hibernate,Struts2等一些框架了,现在使用起来还是有点陌生,今天刚弄就在Tomcat在启动的时候是报的这个错误: org.springframework.b ...

  7. 【linux】基础知识学习

    [版本] 两种:内核版本 . 发行版本 内核版本从 www.kernel.org 查看 发行版本: 1.retHat, centOS 更稳定,更安全,适宜做企业服务器 2.ubuntu, Debian ...

  8. 常用algorithm及其Python实现

    冒泡排序 def bubble_sort(li): for i in range(len(li)-1): # i表示第几趟 for j in range(len(li)-i-1): # j表示图中的箭 ...

  9. iOS 单元测试和UI测试教程

    原文:iOS Unit Testing and UI Testing Tutorial 作者:Audrey Tam 译者:kmyhy 编写测试不是为了追求刺激,测试是为了避免你崭新的 App 变成了充 ...

  10. ArcGIS图例标注上标和下标

    1. 插入图例 在布局视图下,从插入中选择"图例",我们获得以下的样式: 2. 转为单个图形 选择图例,点击右键,选择"转化为图形",再次点击右键,点击&quo ...