效果图如下:

实例代码如下:
type_add.js

// pages/detail_add/detail_add.js
Page({ /**
* 页面的初始数据
*/
data: {
selectData: "", //下拉列表的数据
height: ,
focus: false
},
checkboxChange: function(e) {
console.log('checkbox发生change事件,携带value值为:', e.detail.value)
console.log("长度:" + e.detail.value.length);
this.setData({
typeId: e.detail.value,
length: e.detail.value.length
}) },
formSubmit: function(e) {
console.log('form发生了submit事件,携带数据为:' + e.detail.value.amount + ", " + e.detail.value.typeId + ", " + this.data.remark + ", " + this.data.date + ", " + this.data.time); var amount = e.detail.value.amount;
var typeId = this.data.typeId; var date = this.data.date;
var time = this.data.time;
var remark = e.detail.value.remark;
var createDate = date + " " + time;
var length = this.data.length;
console.log("length:" + length);
console.log("date:" + date);
console.log("time:" + time);
console.log("createDate:" + createDate) if (amount == null || amount == "") {
wx.showToast({
title: "支出金额不能为空",
icon: 'none',
duration:
})
} else if (typeId == null || typeId == "") {
wx.showToast({
title: "支出类型不能为空",
icon: 'none',
duration:
}) } else if (length >= ) {
wx.showToast({
title: "支出类型只能选择一种",
icon: 'none',
duration:
})
} else if (date == null || date == "") {
wx.showToast({
title: "日期不能为空",
icon: 'none',
duration:
})
} else if (time == null || time == "") {
wx.showToast({
title: "时间不能为空",
icon: 'none',
duration:
})
} else if (remark == null || remark == "") {
wx.showToast({
title: "备注不能为空",
icon: 'none',
duration:
})
} else { wx.request({ url: getApp().globalData.urlPath + "spendingDetail/add",
method: "POST",
data: {
amount: amount,
typeId: typeId,
createDate: createDate,
remark: remark
},
header: {
"Content-Type": "application/x-www-form-urlencoded"
},
success: function(res) {
console.log(res.data.code);
if (res.statusCode == ) { //访问正常
if (res.data.code == "") {
wx.showToast({
title: "添加支出详情成功",
icon: 'success',
duration: ,
success: function() { wx.navigateTo({
url: '../detail/detail'
})
}
}) }
} else { wx.showLoading({
title: '系统异常',
fail
}) setTimeout(function() {
wx.hideLoading()
}, )
} }
})
} },
formReset: function() {
console.log('form发生了reset事件')
},
bindDateChange: function(e) {
console.log('picker发送选择改变,携带值为', e.detail.value)
this.setData({
date: e.detail.value
})
},
bindTimeChange: function(e) {
console.log('picker发送选择改变,携带值为', e.detail.value)
this.setData({
time: e.detail.value
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
wx.setNavigationBarTitle({ title: "添加支出详情" }) var userCode = wx.getStorageSync('userId').toString();
var self = this;
wx.request({
url: getApp().globalData.urlPath + "spendingType/types", //json数据地址
data: {
userCode: userCode
},
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
success: function(res) {
console.log("res.data.data.typeName:" + res.data.data) self.setData({ selectData: res.data.data }) }
})
}, /**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function() { }, /**
* 生命周期函数--监听页面显示
*/
onShow: function() { }, /**
* 生命周期函数--监听页面隐藏
*/
onHide: function() { }, /**
* 生命周期函数--监听页面卸载
*/
onUnload: function() { }, /**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function() { }, /**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function() { }, /**
* 用户点击右上角分享
*/
onShareAppMessage: function() { }
})

type_add.wxml:

<form bindsubmit="formSubmit" bindreset="formReset">
<view class="section">
<text>支出金额</text>
<input name="input" name="amount" placeholder="请输入支出金额" />
</view> <view class="section">
<text>支出类型</text>
<checkbox-group bindchange="checkboxChange">
<label class="checkbox" wx:for="{{selectData}}">
<checkbox value="{{item.typeId}}" checked="{{item.checked}}" />{{item.typeName}}
</label>
</checkbox-group> </view> <view>
<text>创建时间</text>
<view class="section">
<picker mode="date" value="{{date}}" start="2018-09-01" end="2030-09-01" bindchange="bindDateChange">
<view class="picker">
选择日期: {{date}}
</view>
</picker>
</view>
<view class="section">
<picker mode="time" value="{{time}}" start="00:00=" end="23:59" bindchange="bindTimeChange">
<view class="picker">
选择时间: {{time}}
</view>
</picker>
</view>
</view>
<view class="section">
<text>备注</text>
<input name="input" name="remark" placeholder="请输入备注" />
</view>
<view>
<text>\n</text>
</view>
<view class="btn-area">
<button form-type="submit">提交</button>
<view>
<text>\n</text>
</view>
<button form-type="reset">重置</button>
</view>
</form>

bindchange=”checkboxChange” 相当于js中的onchange事件。
上述中的form表单基本就是参考官方文档改的。
有一段代码还是要提一下:

self.setData({

    selectData: res.data.data

  })

self其实相当于this,意为当前。每次触发事件,对应的值都会进行存储,用于与后台通信进行数组传递,

type_add.wxss:

/* pages/login/login.wxss */
form{
width: 310px;
height: 240px;
line-height: 40px;
/* border: 1px solid red; */
}
input{
border: 1px solid #ccc;
width: 310px;
height: 40px;
}
.button{
margin-top: 20px;
}
.header text{
font-size: 25px;
color: #;
}
form text{
font-size: 20px;
color: #;
}

微信小程序之使用checkbox的更多相关文章

  1. 微信小程序踩坑集合

    1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教程:https://mp.weixin.qq.com/debu ...

  2. 微信小程序全选,微信小程序checkbox,微信小程序购物车

    微信小程序,这里实现微信小程序checkbox,有需要此功能的朋友可以参考下. 摘要: 加减商品数量,汇总价格,全选与全不选 设计思路: 一.从网络上传入以下Json数据格式的数组  1.标题titl ...

  3. 微信小程序 修改(自定义) 单选/复选按钮样式 checkbox/radio样式自定义

    参考文章: 微信小程序 修改(自定义) 单选/复选按钮样式 checkbox/radio样式自定义

  4. 微信小程序CheckBox选中事件

    1.微信小程CheckBox选中问题 <checkbox-group bindchange="checkboxChange" data-index="{{index ...

  5. 微信小程序把玩(十五)checkbox组件

    原文:微信小程序把玩(十五)checkbox组件 不得不吐糟下checkbox默认样式真是有点略丑!!!checkbox组件为一个多选框被放到checkbox-group组中,并在checkbox-g ...

  6. 微信小程序开发——修改小程序原生checkbox、radio默认样式

    复选框: 闲话少说,这里直接介绍如何修改小程序提供的复选框的样式,如原生的是这样的: 需要的是这样的: 示例代码: /*复选框外框样式*/ checkbox .wx-checkbox-input { ...

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

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

  8. 快速了解微信小程序的使用,一个根据小程序的框架开发的todos app

    微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程, ...

  9. 微信小程序基础入门

    准备 Demo 项目地址 https://github.com/zce/weapp-demo Clone or Download(需准备GIT环境) $ cd path/to/project/root ...

随机推荐

  1. koa2--nodemailer实现邮箱验证

    依赖包安装: /** * koa-bodyparser用于把formData数据解析到ctx.request.body * 通过ctx.request.body访问请求的参数 * koa-redis用 ...

  2. weblogic unable to get file lock问题

    非正常结束weblogic进程导致weblogic无法启动 由于先前服务器直接down掉了,所有进程都非正常的进行关闭了,也就导致了下次启动weblogic的时候报了以下错误: <2012-3- ...

  3. Linux负载模拟

    转载:https://blog.csdn.net/F8qG7f9YD02Pe/article/details/79063392 CPU 下面命令会创建 CPU 负荷,方法是通过压缩随机数据并将结果发送 ...

  4. Word2Vec算法简介

    一.简介 word2vec是Google在2003年开源的一款将词表征为实数值向量的高效算法,采用的模型有CBOW[Continuous Bag-Of-Words 连续的词袋模型]和Skip-Gram ...

  5. 【Python】模块和包

    模块 模块的概念 1. 每一个以扩展名 `py` 结尾的 `Python` 源代码文件都是一个 模块 2. 模块名 同样也是一个 标识符,需要符合标识符的命名规则 3. 在模块中定义的 全局变量 .函 ...

  6. HotSpot虚拟机的锁优化

    面试中多次被问到synchronized关键字的实现原理,一直认为仅是monitorenter与monitorexit两条指令而已,原来底层涉及到多种锁优化策略,包括:自旋锁,轻量锁,偏向锁. 1.自 ...

  7. 【总结】RSS Hub使用经验

    目录 一.RSS Hub的使用 二.RSS使用 Editor: Veagau Time: 2019.10.28 一.RSS Hub的使用 力求简单,能用图形界面操作的就用图形界面操作. Fork RS ...

  8. python学习类与方法的调用规则

    1类方法的特点是类方法不属于任何该类的对象,只属于类本身 2类的静态方法类似于全局函数,因为静态方法既没有实例方法的self参数也没有类方法的cls参数,谁都可以调用 3.实例方法只属于实例,是实例化 ...

  9. 关于input标签checkbox属性 和checked

    我们设置了type的属性为checkbox时,记住以下3个关键点 1.点勾选时或者说点击时,checked为选中,在input标签中是checked=“checked”,注意这里面无论checked= ...

  10. wordpress更新出现Briefly unavailable for scheduled maintenance. Check back in a minute.

    今天ytkah在更新wordpress插件时出现了Briefly unavailable for scheduled maintenance. Check back in a minute.查找了相关 ...