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


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 相关文章推荐
用js计算页面执行时间的函数
Dec 07 Javascript
jQuery入门问答 整理的几个常见的初学者问题
Feb 22 Javascript
javascript与CSS复习(《精通javascript》)
Jun 29 Javascript
扩展JS Date对象时间格式化功能的小例子
Dec 02 Javascript
JSP中使用JavaScript动态插入删除输入框实现代码
Jun 13 Javascript
jQuery使用append在html元素后同时添加多项内容的方法
Mar 26 Javascript
AngularJS中的DOM操作用法分析
Nov 04 Javascript
springmvc接收jquery提交的数组数据代码分享
Oct 28 jQuery
vue的过滤器filter实例详解
Sep 17 Javascript
Vue项目从webpack3.x升级webpack4不完全指南
Apr 28 Javascript
微信小程序开发(一):服务器获取数据列表渲染操作示例
Jun 01 Javascript
详解Vue.js 可拖放文本框组件的使用
Mar 03 Vue.js
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
DC这些乐高系列动画电影你看过几部?
2020/04/09 欧美动漫
php多任务程序实例解析
2014/07/19 PHP
四个常见html网页乱码问题及解决办法
2015/09/08 PHP
php中bind_param()函数用法分析
2017/03/28 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
phpstorm激活码2020附使用详细教程
2020/09/25 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
2021/03/09 PHP
JavaScript 事件参考手册
2008/12/24 Javascript
在VS2008中使用jQuery智能感应的方法
2010/12/30 Javascript
JavaScript实现拼音排序的方法
2012/11/20 Javascript
JavaScript禁止页面操作的示例代码
2013/12/17 Javascript
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
节点的插入之append()和appendTo()的用法介绍
2014/01/13 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
jquery+php随机生成红包金额数量代码分享
2015/08/27 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
无限循环轮播图之运动框架(原生JS实现)
2017/10/01 Javascript
zTree树形菜单交互选项卡效果的实现方法
2017/12/25 Javascript
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
vue修改Element的el-table样式的4种方法
2020/09/17 Javascript
探索node之事件循环的实现
2020/10/30 Javascript
Python import自定义模块方法
2015/02/12 Python
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
2016/12/14 Python
python实现二维码扫码自动登录淘宝
2016/12/27 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
2018/01/31 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
Python实现堡垒机模式下远程命令执行操作示例
2019/05/09 Python
python如何实现代码检查
2019/06/28 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
2019/09/05 Python
Python计算不规则图形面积算法实现解析
2019/11/22 Python
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
大学生第一学年自我鉴定
2014/09/12 职场文书
党的群众路线教育实践活动督导组工作情况汇报
2014/10/28 职场文书
2014年政风行风工作总结
2014/11/22 职场文书
2015年高校辅导员工作总结
2015/04/20 职场文书