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


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 相关文章推荐
新页面打开实际尺寸的图片
Aug 25 Javascript
javaScript call 函数的用法说明
Apr 09 Javascript
UpdatePanel和Jquery冲突的解决方法
Apr 01 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
Aug 05 Javascript
jQuery回车实现登录简单实现
Aug 20 Javascript
JavaScript中的object转换成number或string规则介绍
Dec 31 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
May 25 Javascript
js跨域请求的5中解决方式
Jul 02 Javascript
JS实现的自定义网页拖动类
Nov 06 Javascript
JavaScript实现的MD5算法完整实例
Feb 02 Javascript
基于jQuery实现仿QQ空间送礼物功能代码
May 24 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
Jul 04 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/11/10 PHP
php生成图片缩略图功能示例
2017/02/22 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
jQuery+CSS 半开折叠效果原理及代码(自写)
2013/03/04 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
js鼠标及对象坐标控制属性详细解析
2013/12/14 Javascript
php中给js数组赋值方法
2014/03/10 Javascript
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
2014/06/06 Javascript
面向切面编程(AOP)的理解
2015/05/01 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
2015/11/02 Javascript
微信小程序 图片等比例缩放(图片自适应屏幕)
2016/11/16 Javascript
基于jQuery制作小图标上下滑动特效
2017/01/18 Javascript
Javascript中字符串和数字的操作方法整理
2017/01/22 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
vue swipe自定义组件实现轮播效果
2019/07/03 Javascript
JavaScript setTimeout()基本用法有哪些
2020/11/04 Javascript
Python中用sleep()方法操作时间的教程
2015/05/22 Python
Python中的urllib模块使用详解
2015/07/07 Python
windows下python之mysqldb模块安装方法
2017/09/07 Python
python中Switch/Case实现的示例代码
2017/11/09 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
2018/01/04 Python
pandas创建新Dataframe并添加多行的实例
2018/04/08 Python
python 读取txt中每行数据,并且保存到excel中的实例
2018/04/29 Python
python邮件发送smtplib使用详解
2020/06/16 Python
Python二叉树定义与遍历方法实例分析
2018/05/25 Python
Tensorflow之MNIST CNN实现并保存、加载模型
2020/06/17 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
2020/06/28 Python
PyCharm 解决找不到新打开项目的窗口问题
2021/01/15 Python
CSS3过渡transition效果实例介绍
2016/05/03 HTML / CSS
Peter Millar官网:美国高档生活服饰品牌
2018/07/02 全球购物
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
应届毕业生的个人自我鉴定
2013/10/24 职场文书
大学生村官任职感言
2014/01/09 职场文书
四川成都导游欢迎词
2014/01/18 职场文书
大四自我鉴定
2014/02/08 职场文书
对学校的意见和建议
2015/06/04 职场文书