微信小程序 checkbox使用实例解析


Posted in Javascript onSeptember 09, 2019

这篇文章主要介绍了微信小程序 checkbox使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

效果图如下:

微信小程序 checkbox使用实例解析

实例代码如下:

type_add.js

// pages/detail_add/detail_add.js
Page({

 /**
  * 页面的初始数据
  */
 data: {
  selectData: "", //下拉列表的数据
  height: 20,
  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: 1500
   })
  } else if (typeId == null || typeId == "") {
   wx.showToast({
    title: "支出类型不能为空",
    icon: 'none',
    duration: 1500
   })

  } else if (length >= 2) {
   wx.showToast({
    title: "支出类型只能选择一种",
    icon: 'none',
    duration: 1500
   })
  } else if (date == null || date == "") {
   wx.showToast({
    title: "日期不能为空",
    icon: 'none',
    duration: 1500
   })
  } else if (time == null || time == "") {
   wx.showToast({
    title: "时间不能为空",
    icon: 'none',
    duration: 1500
   })
  } else if (remark == null || remark == "") {
   wx.showToast({
    title: "备注不能为空",
    icon: 'none',
    duration: 1500
   })
  } 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 == 200) {

      //访问正常
      if (res.data.code == "000000") {
       wx.showToast({
        title: "添加支出详情成功",
        icon: 'success',
        duration: 3000,
        success: function() {

         wx.navigateTo({
          url: '../detail/detail'
         })
        }
       })

      }
     } else {

      wx.showLoading({
       title: '系统异常',
       fail
      })

      setTimeout(function() {
       wx.hideLoading()
      }, 2000)
     }

    }
   })
  }


 },
 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: #666;
}
form text{
 font-size: 20px;
 color: #666;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
juqery 学习之三 选择器 简单 内容
Nov 25 Javascript
分享27款非常棒的jQuery 表单插件
Mar 28 Javascript
一款Jquery 分页插件的改造方法(服务器端分页)
Jul 11 Javascript
JS保留两位小数,多位小数的示例代码
Jan 07 Javascript
js动画效果制件让图片组成动画代码分享
Jan 14 Javascript
javascript 判断两个日期之差的示例代码
Sep 05 Javascript
javascript类型系统_正则表达式RegExp类型详解
Jun 24 Javascript
javascript简单进制转换实现方法
Nov 24 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
Jan 19 Javascript
详解如何在webpack中做预渲染降低首屏空白时间
Aug 22 Javascript
Openlayers实现图形绘制
Sep 28 Javascript
uniapp实现可以左右滑动导航栏
Oct 21 Javascript
js之切换全屏和退出全屏实现代码实例
Sep 09 #Javascript
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
Sep 09 #Javascript
一次微信小程序内地图的使用实战记录
Sep 09 #Javascript
微信小程序HTTP请求从0到1封装
Sep 09 #Javascript
JS回调函数 callback的理解与使用案例分析
Sep 09 #Javascript
世界上最短的数字判断js代码
Sep 09 #Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
Sep 09 #Javascript
You might like
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
2008/12/06 PHP
PHP中ini_set和ini_get函数的用法小结
2014/02/18 PHP
YII CLinkPager分页类扩展增加显示共多少页
2016/01/29 PHP
总结PHP中数值计算的注意事项
2016/08/14 PHP
PHP中Notice错误常见解决方法
2017/04/28 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
淘宝搜索框效果实现分析
2011/03/05 Javascript
利用Jquery实现可多选的下拉框
2014/02/21 Javascript
探讨js字符串数组拼接的性能问题
2014/10/11 Javascript
JQuery中attr属性和jQuery.data()学习笔记【必看】
2016/05/18 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
2017/01/23 Javascript
jquery-file-upload 文件上传带进度条效果
2017/11/21 jQuery
nuxt框架中路由鉴权之Koa和Session的用法
2018/05/09 Javascript
JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法
2018/06/07 Javascript
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
node.js遍历目录的方法示例
2018/08/01 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
2019/07/07 Javascript
以Python的Pyspider为例剖析搜索引擎的网络爬虫实现方法
2015/03/30 Python
Python与shell的3种交互方式介绍
2015/04/11 Python
Python实现队列的方法
2015/05/26 Python
python numpy函数中的linspace创建等差数列详解
2017/10/13 Python
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
python ubplot使用方法解析
2020/01/10 Python
Python使用pycharm导入pymysql教程
2020/09/16 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
2021/02/01 Python
中国最大的团购网站:聚划算
2016/09/21 全球购物
致跳远、跳高运动员广播稿
2014/01/09 职场文书
触电现场处置方案
2014/05/14 职场文书
副科级后备干部考察材料
2014/05/15 职场文书
体育教师求职信
2014/05/24 职场文书
纪念九一八事变演讲稿1000字
2014/09/14 职场文书
离职报告范文
2014/11/04 职场文书
2015庆祝七一建党节94周年活动总结
2015/03/20 职场文书
mysql 直接拷贝data 目录下文件还原数据的实现
2021/07/25 MySQL
HTML中的表单元素介绍
2022/02/28 HTML / CSS
MySQL创建管理子分区
2022/04/13 MySQL