微信小程序如何获取手机验证码


Posted in Javascript onNovember 04, 2018

一种比较常见的功能获取手机验证码,供大家参考,具体内容如下

先看效果图:

微信小程序如何获取手机验证码

其实这个功能实现起来很简单,主要就是调取第三方接口,拿到返回值验证的问题

直接上代码吧:

<view class='changeInfo'>
 <view class='changeInfoName'>
   <input placeholder='请输入姓名' bindinput='getNameValue' value='{{name}}'/> 
 </view>
 
 <view class='changeInfoName'>
   <input placeholder='请输入手机号' bindinput='getPhoneValue' value='{{phone}}'/> 
 </view>
 <view class='changeInfoName'>
   <input placeholder='请输验证码' bindinput='getCodeValue' value='{[code]}' style='width:70%;'/> 
   <button class='codeBtn' bindtap='getVerificationCode' disabled='{{disabled}}' >{{codename}}</button>
 </view>
 <button class='changeBtn' bindtap='save'>保存</button>
</view>

CSS:

page{
 height: 100%;
 width: 100%;
 background: linear-gradient(#5681d7, #486ec3);
}
.changeInfo{
 display: flex;
 flex-direction: column;
 justify-content: space-between;
 width: 90%;
 margin: 50rpx auto;
}
.changeInfoName{
 position: relative;
 height: 80rpx;
 width: 100%;
 border-radius: 10rpx;
 background: #fff;
 margin-bottom: 20rpx;
 padding-left: 20rpx;
 box-sizing: border-box;
}
.codeBtn{
 position: absolute;
 right: 0;
 top: 0;
 color: #bbb;
 width: 30%;
 font-size: 26rpx;
 height: 80rpx;
 line-height: 80rpx;
}
.changeInfoName input{
 width: 100%;
 height:100%;
}
.changeBtn{
 width: 40%;
 height: 100rpx;
 background: #fff;
 color: #000;
 border-radius: 50rpx;
 position: absolute;
 bottom: 10%;
 left: 50%;
 margin-left: -20%;
 line-height: 100rpx;
}

js: 

var app = require('../../resource/js/util.js');
Page({
 /**
  * 页面的初始数据
  */
 data: {
  name:'',//姓名
  phone:'',//手机号
  code:'',//验证码
  iscode:null,//用于存放验证码接口里获取到的code
  codename:'获取验证码'
 },
 //获取input输入框的值
 getNameValue:function(e){
  this.setData({
   name:e.detail.value
  })
 },
 getPhoneValue:function(e){
  this.setData({
   phone:e.detail.value
  })
 },
 getCodeValue: function (e) {
  this.setData({
   code: e.detail.value
  })
 },
 getCode:function(){
  var a = this.data.phone;
  var _this = this;
  var myreg = /^(14[0-9]|13[0-9]|15[0-9]|17[0-9]|18[0-9])\d{8}$$/;
  if (this.data.phone == "") {
   wx.showToast({
    title: '手机号不能为空',
    icon: 'none',
    duration: 1000
   })
   return false;
  } else if (!myreg.test(this.data.phone)) {
   wx.showToast({
    title: '请输入正确的手机号',
    icon: 'none',
    duration: 1000
   })
   return false;
  }else{
   wx.request({
    data: {},
    'url': 接口地址,
    success(res) {
     console.log(res.data.data)
     _this.setData({
      iscode: res.data.data
     })
     var num = 61;
     var timer = setInterval(function () {
      num--;
      if (num <= 0) {
       clearInterval(timer);
       _this.setData({
        codename: '重新发送',
        disabled: false
       })
 
      } else {
       _this.setData({
        codename: num + "s"
       })
      }
     }, 1000)
    }
   })
   
  }
  
  
 },
 //获取验证码
 getVerificationCode() {
  this.getCode();
  var _this = this
  _this.setData({
   disabled: true
  })
 },
 //提交表单信息
 save:function(){
  var myreg = /^(14[0-9]|13[0-9]|15[0-9]|17[0-9]|18[0-9])\d{8}$$/;
  if(this.data.name == ""){
   wx.showToast({
    title: '姓名不能为空',
    icon: 'none',
    duration: 1000
   })
   return false;
  }
  if(this.data.phone == ""){
   wx.showToast({
    title: '手机号不能为空',
    icon: 'none',
    duration: 1000
   })
   return false;
  }else if(!myreg.test(this.data.phone)){
   wx.showToast({
    title: '请输入正确的手机号',
    icon: 'none',
    duration: 1000
   })
   return false;
  }
  if(this.data.code == ""){
   wx.showToast({
    title: '验证码不能为空',
    icon: 'none',
    duration: 1000
   })
   return false;
  }else if(this.data.code != this.data.iscode){
   wx.showToast({
    title: '验证码错误',
    icon: 'none',
    duration: 1000
   })
   return false;
  }else{
   wx.setStorageSync('name', this.data.name);
   wx.setStorageSync('phone', this.data.phone);
   wx.redirectTo({
    url: '../add/add',
   })
  }
 },
 /**
  * 生命周期函数--监听页面加载
  */
 onLoad: function (options) {
  
 },
 
 /**
  * 生命周期函数--监听页面初次渲染完成
  */
 onReady: function () {
 
 },
 
 /**
  * 生命周期函数--监听页面显示
  */
 onShow: function () {
 
 },
 
 /**
  * 生命周期函数--监听页面隐藏
  */
 onHide: function () {
 
 },
 
 /**
  * 生命周期函数--监听页面卸载
  */
 onUnload: function () {
 
 },
 
 /**
  * 页面相关事件处理函数--监听用户下拉动作
  */
 onPullDownRefresh: function () {
 
 },
 
 /**
  * 页面上拉触底事件的处理函数
  */
 onReachBottom: function () {
 
 },
 
 /**
  * 用户点击右上角分享
  */
 onShareAppMessage: function () {
 
 }
})

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

Javascript 相关文章推荐
javascript 原型链维护和继承详解
Nov 26 Javascript
Javascript解析URL方法详解
Dec 05 Javascript
js数组的操作指南
Dec 28 Javascript
JavaScript函数作用域链分析
Feb 13 Javascript
IE10中flexigrid无法显示数据的解决方法
Jul 26 Javascript
bootstrap中模态框、模态框的属性实例详解
Feb 17 Javascript
JS简单获取当前日期和农历日期的方法
Apr 17 Javascript
react-native-fs实现文件下载、文本存储的示例代码
Sep 22 Javascript
D3.js(v3)+react 实现带坐标与比例尺的散点图 (V3版本)
May 09 Javascript
学习RxJS之JavaScript框架Cycle.js
Jun 17 Javascript
纯JS开发baguetteBox.js响应式画廊插件
Jun 28 Javascript
vue实践---vue不依赖外部资源实现简单多语操作
Sep 21 Javascript
微信小程序实现弹出层效果
May 26 #Javascript
微信小程序实现预览图片功能
Oct 22 #Javascript
详解如何使用koa实现socket.io官网的例子
Nov 04 #Javascript
微信小程序实现多选功能
Nov 04 #Javascript
微信小程序实现无限滚动列表
May 29 #Javascript
微信小程序自定义轮播图
Nov 04 #Javascript
微信小程序实现带缩略图轮播效果
Nov 04 #Javascript
You might like
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
php获取apk包信息的方法
2014/08/15 PHP
php+ajax实现无刷新的新闻留言系统
2020/12/21 PHP
PHP实现上传图片到 zimg 服务器
2016/10/19 PHP
PHP实现支持CURL字符串证书传输的方法
2019/03/23 PHP
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
深入认识javascript中的eval函数
2009/11/02 Javascript
菜鸟学习JavaScript小实验之函数引用
2010/11/17 Javascript
javascript 节点排序 2
2011/01/31 Javascript
JavaScript中使用Math.PI圆周率属性的方法
2015/06/14 Javascript
jquery制作图片时钟特效
2020/03/30 Javascript
基于JQuery的购物车添加删除以及结算功能示例
2017/03/08 Javascript
JS解决移动web开发手机输入框弹出的问题
2017/03/31 Javascript
JavaScript Date对象应用实例分享
2017/10/30 Javascript
原生JS实现动态添加新元素、删除元素方法
2019/05/05 Javascript
JS实现的自定义map方法示例
2019/05/17 Javascript
ElementUI radio组件选中小改造
2019/08/12 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
2020/05/06 Javascript
[36:05]DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs Optic
2018/04/01 DOTA
Python命名空间详解
2014/08/18 Python
跟老齐学Python之字典,你还记得吗?
2014/09/20 Python
Python面向对象编程中的类和对象学习教程
2015/03/30 Python
Python中的Numpy矩阵操作
2018/08/12 Python
python实现多层感知器
2019/01/18 Python
python实现超市商品销售管理系统
2019/11/22 Python
Python开发之基于模板匹配的信用卡数字识别功能
2020/01/13 Python
CSS3制作苹果风格键盘特效
2015/02/26 HTML / CSS
如何开发安全的AJAX应用
2014/03/26 面试题
证婚人搞笑证婚词
2014/01/10 职场文书
中国梦主题教育活动总结
2014/05/05 职场文书
素质教育标语
2014/06/27 职场文书
蛋糕店创业计划书范文
2014/09/21 职场文书
党员心得体会范文2016
2016/01/23 职场文书
vue中三级导航的菜单权限控制
2021/03/31 Vue.js
基于Python实现流星雨效果的绘制
2022/03/18 Python
JS轻量级函数式编程实现XDM三
2022/06/16 Javascript