微信小程序发送短信验证码完整实例


Posted in Javascript onJanuary 07, 2019

微信小程序注册完整实例,发送短信验证码,带60秒倒计时功能,无需服务器端。效果图:

微信小程序发送短信验证码完整实例

代码:

index.wxml

<!--index.wxml-->
<view class="container">
 <view class='row'>
   <input placeholder='请输入姓名' bindinput='bindNameInput'/> 
 </view>
 
 <view class='row'>
   <input placeholder='请输入手机号' bindinput='bindPhoneInput'/> 
 </view>
 <view class='row'>
   <input placeholder='请输验证码' bindinput='bindCodeInput' style='width:70%;'/> 
   <button class='codeBtn' bindtap='getCode' hidden='{{hidden}}' disabled='{{btnDisabled}}'>{{btnValue}}</button>
 </view>
 <view>
   <button class='save' bindtap='save' >保存</button>
 </view>
 
</view>

index.js

//index.js
var zhenzisms = require('../../utils/zhenzisms.js');
//获取应用实例
const app = getApp();
 
Page({
 data: {
  hidden: true,
  btnValue:'',
  btnDisabled:false,
  name: '',
  phone: '',
  code: '',
  second: 60
 },
 onLoad: function () {
  
 },
 //姓名输入
 bindNameInput(e) {
  this.setData({
   name: e.detail.value
  })
 },
 //手机号输入
 bindPhoneInput(e) {
  console.log(e.detail.value);
  var val = e.detail.value;
  this.setData({
   phone: val
  })
  if(val != ''){
   this.setData({
    hidden: false,
    btnValue: '获取验证码'
   })
  }else{
   this.setData({
    hidden: true
   })
  }
 },
 //验证码输入
 bindCodeInput(e) {
  this.setData({
   code: e.detail.value
  })
 },
 //获取短信验证码
 getCode(e) {
  console.log('获取验证码');
  var that = this;
  zhenzisms.client.init('https://sms_developer.zhenzikj.com', 'appId', 'appSecret');
  zhenzisms.client.send(function (res) {
   if(res.data.code == 0){
    that.timer();
    return ;
   }
   wx.showToast({
    title: res.data.data,
    icon: 'none',
    duration: 2000
   })
  }, '15801636347', '验证码为:3322');
  
 },
 timer: function () {
  let promise = new Promise((resolve, reject) => {
   let setTimer = setInterval(
    () => {
     var second = this.data.second - 1;
     this.setData({
      second: second,
      btnValue: second+'秒',
      btnDisabled: true
     })
     if (this.data.second <= 0) {
      this.setData({
       second: 60,
       btnValue: '获取验证码',
       btnDisabled: false
      })
      resolve(setTimer)
     }
    }
    , 1000)
  })
  promise.then((setTimer) => {
   clearInterval(setTimer)
  })
 },
 //保存
 save(e) {
  console.log('姓名: ' + this.data.name);
  console.log('手机号: ' + this.data.phone);
  console.log('验证码: ' + this.data.code);
 
   //省略提交过程
 }
})

index.wxss

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

完整下载: 下载

详情参考: http://smsow.zhenzikj.com/doc/sdk.html

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

Javascript 相关文章推荐
javascript 火狐(firefox)不显示本地图片问题解决
Jul 05 Javascript
javascript 面向对象全新理练之数据的封装
Dec 03 Javascript
JS去除右边逗号的简单方法
Jul 03 Javascript
js动态修改input输入框的type属性(实现方法解析)
Nov 13 Javascript
在每个匹配元素的外部插入新元素的方法
Dec 20 Javascript
JavaScript如何禁止Backspace键
Dec 02 Javascript
Easyui Tree获取当前选择节点的所有顶级父节点
Feb 14 Javascript
bootstrap里bootstrap动态加载下拉框的实例讲解
Aug 10 Javascript
微信小程序sessionid不一致问题解决
Aug 30 Javascript
vue请求服务器数据后绑定不上的解决方法
Oct 30 Javascript
使用Vue+Django+Ant Design做一个留言评论模块的示例代码
Jun 01 Javascript
JavaScript中EventBus实现对象之间通信
Oct 18 Javascript
JS数组求和的常用方法实例小结
Jan 07 #Javascript
Node.js 如何利用异步提升任务处理速度
Jan 07 #Javascript
vue封装一个简单的div框选时间的组件的方法
Jan 06 #Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
Jan 06 #Javascript
浅谈在Vue.js中如何实现时间转换指令
Jan 06 #Javascript
浅谈Vue.js中如何实现自定义下拉菜单指令
Jan 06 #Javascript
react-router4按需加载(踩坑填坑)
Jan 06 #Javascript
You might like
深入理解PHP类的自动载入机制
2016/09/16 PHP
firefox下对ajax的onreadystatechange的支持情况分析
2009/12/14 Javascript
javascript函数中的arguments参数
2010/08/01 Javascript
为Javascript中的String对象添加去除左右空格的方法(示例代码)
2013/11/30 Javascript
跟我学习javascript的执行上下文
2015/11/18 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
2015/12/17 Javascript
JavaScript中三个等号和两个等号的区别(== 和 ===)浅析
2016/09/22 Javascript
使用Ajax与服务器(JSON)通信实例
2016/11/04 Javascript
JS匿名函数类生成方式实例分析
2016/11/26 Javascript
Vue实现选择城市功能
2017/05/27 Javascript
javascript实现延时显示提示框效果
2017/06/01 Javascript
详解Angular5 路由传参的3种方法
2018/04/28 Javascript
JS实现求5的阶乘示例
2019/01/21 Javascript
微信小程序按钮点击跳转页面详解
2019/05/06 Javascript
Vue安装浏览器开发工具的步骤详解
2019/05/12 Javascript
layer ui插件显示tips时,修改字体颜色的实现方法
2019/09/11 Javascript
[00:37]2016完美“圣”典风云人物:rOtk宣传片
2016/12/09 DOTA
Python3结合Dlib实现人脸识别和剪切
2018/01/24 Python
python中如何进行连乘计算
2020/05/28 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
英国假睫毛购买网站:FalseEyelashes.co.uk
2018/05/23 全球购物
自我评价200字分享
2013/12/17 职场文书
中层干部竞争上岗演讲稿
2014/01/13 职场文书
自荐信格式简述
2014/01/25 职场文书
七年级政治教学反思
2014/02/03 职场文书
优秀公益广告词大全
2014/03/19 职场文书
创建青年文明号材料
2014/05/09 职场文书
会计专业应届生自荐信
2014/06/28 职场文书
给老婆道歉的话
2015/01/20 职场文书
元宵节寄语大全
2015/02/27 职场文书
计生个人工作总结
2015/02/28 职场文书
社区艾滋病宣传活动总结
2015/05/07 职场文书
消防演习感想
2015/08/10 职场文书
2015中秋祝酒词
2015/08/12 职场文书
MySQL窗口函数的具体使用
2021/11/17 MySQL
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python