Ionic学习日记实现验证码倒计时


Posted in Javascript onFebruary 08, 2018

前言

要做一个app的话,肯定会涉及到这个功能,所以就从网上找了许多前辈的资料,找到了一个最适合自己并且方便理解的实现此功能,写此日记方便未来自己复习和其他人学习

思路

在用户注册的时候,时下不少app都选择了绑定手机号注册,这是一个非常好的想法,便捷用户操作,也很方便遵循实名制的问题,在设计按钮的时候,需要让他显示在输入验证码的旁边,并在用户点击后,开始倒计时,并将按钮变成无法点击效果

Ionic学习日记实现验证码倒计时

点击前

Ionic学习日记实现验证码倒计时

点击后

在本篇日记中只涉及到1个page下的文件,包括html、ts和scss(我的页面名为reg,可根据自己的具体情况进行调整)

在reg.ts定义在html中可以获取到的信息

//验证码倒计时
 verifyCode: any = {
  verifyCodeTips: "获取验证码",
  countdown: 60,
  disable: true
 }

reg.html设计布局

上面的图片是我自己设计的,这里只取关键代码

<button item-right ion-button clear (click)="getCode()" [disabled]="!verifyCode.disable">{{verifyCode.verifyCodeTips}}</button>

点击事件getCode(),设置[disabled]是否可以点击按钮,用boolean值判断,主要显示的内容是verifyCode.verifyCodeTips,即文本信息和之后需要实现的倒计时

reg.ts添加方法和倒计时处理

当点击button后将触发getCode()方法,触发该方法后首先将disable的值改变为false,将按钮设为不可点击,然后触发settime方法

getCode() {
  //点击按钮后开始倒计时
  this.verifyCode.disable = false;
  this.settime();
 }

settime()具体实现倒计时功能

//倒计时
 settime() {
  if (this.verifyCode.countdown == 1) {
   this.verifyCode.countdown = 60;
   this.verifyCode.verifyCodeTips = "获取验证码";
   this.verifyCode.disable = true;
   return;
  } else {
   this.verifyCode.countdown--;
  }
  this.verifyCode.verifyCodeTips = "重新获取"+this.verifyCode.countdown+"秒";
  setTimeout(() => {
   this.verifyCode.verifyCodeTips = "重新获取"+this.verifyCode.countdown+"秒";
   this.settime();
  }, 1000);
 }

用每过1秒计数器减1,简单的倒计时功能,重要的是判断计数器是否为1,当为1后就将verifyCode的3个信息重新初始化

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

Javascript 相关文章推荐
完美解决JS中汉字显示乱码问题(已解决)
Dec 27 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
Dec 31 Javascript
点击隐藏页面左栏或右栏实现js代码
Apr 01 Javascript
jquery实现弹出层效果实例
May 19 Javascript
vue cli构建的项目中请求代理与项目打包问题
Feb 26 Javascript
vue debug 二种方法
Sep 16 Javascript
js根据json数据中的某一个属性来给数据分组的方法
Oct 08 Javascript
javascript function(函数类型)使用与注意事项小结
Jun 10 Javascript
基于Vue SEO的四种方案(小结)
Jul 01 Javascript
Vue 实现一个命令式弹窗组件功能
Sep 25 Javascript
vue-cli 为项目设置别名的方法
Oct 15 Javascript
浅谈vue权限管理实现及流程
Apr 23 Javascript
vue父组件点击触发子组件事件的实例讲解
Feb 08 #Javascript
vue中实现在外部调用methods的方法(推荐)
Feb 08 #Javascript
10 种最常见的 Javascript 错误(频率最高)
Feb 08 #Javascript
Vue组件通信的四种方式汇总
Feb 08 #Javascript
Vue Socket.io源码解读
Feb 07 #Javascript
原生JavaScript实现的简单放大镜效果示例
Feb 07 #Javascript
Express下采用bcryptjs进行密码加密的方法
Feb 07 #Javascript
You might like
php代码把全角数字转为半角数字
2007/12/10 PHP
浅析Mysql 数据回滚错误的解决方法
2013/08/05 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
2014/11/28 PHP
PHP中使用php://input处理相同name值的表单数据
2015/02/03 PHP
PHP使用第三方即时获取物流动态实例详解
2017/04/27 PHP
php实现页面纯静态的实例代码
2017/06/21 PHP
Avengerls vs KG BO3 第三场2.18
2021/03/10 DOTA
解决jquery异步按一定的时间间隔刷新问题
2012/12/10 Javascript
JavaScript获取和设置CheckBox状态的简单方法
2013/07/05 Javascript
Node.js中使用socket创建私聊和公聊聊天室
2015/11/19 Javascript
Bootstrap表格和栅格分页实例详解
2016/05/20 Javascript
浅谈JavaScript的自动垃圾收集机制
2016/12/15 Javascript
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
微信小程序实现选项卡功能
2020/06/19 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
2020/06/05 Javascript
[01:01:04]2018DOTA2亚洲邀请赛 4.5 淘汰赛 OpTic vs TNC 第一场
2018/04/06 DOTA
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
带你认识Django
2019/01/15 Python
Tensorflow实现在训练好的模型上进行测试
2020/01/20 Python
Django中ORM找出内容不为空的数据实例
2020/05/20 Python
在keras里实现自定义上采样层
2020/06/28 Python
python 两种方法删除空文件夹
2020/09/29 Python
css3实现背景颜色渐变让图片不再是唯一的实现方式
2012/12/18 HTML / CSS
一款基于css3麻将筛子3D翻转特效的实例教程
2014/12/31 HTML / CSS
localStorage的过期时间设置的方法详解
2018/11/26 HTML / CSS
销售人员个人求职信
2013/09/26 职场文书
大学生求职简历的自我评价
2013/10/14 职场文书
咖啡店的创业计划书,让你hold不住
2014/01/03 职场文书
师说教学反思
2014/02/07 职场文书
元旦红领巾广播稿
2014/02/19 职场文书
升学宴主持词
2014/04/02 职场文书
实习生个人总结范文
2015/02/28 职场文书
2015年三年级班主任工作总结
2015/05/21 职场文书
《为人民服务》教学反思
2016/02/20 职场文书
python脚本框架webpy模板控制结构
2021/11/20 Python
Java时间工具类Date的常用处理方法
2022/05/25 Java/Android