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 相关文章推荐
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
Jan 15 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
Jun 14 Javascript
JS跨域代码片段
Aug 30 Javascript
网页中表单按回车就自动提交的问题的解决方案
Nov 03 Javascript
jQuery中closest()函数用法实例
Jan 07 Javascript
教你用javascript实现随机标签云效果_附代码
Mar 16 Javascript
详解react如何在组件中获取路由参数
Jun 15 Javascript
Bootstrap table使用方法汇总
Nov 17 Javascript
解决Mac下安装nmp的淘宝镜像失败问题
May 16 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
Sep 27 Javascript
vue component 中引入less文件报错 Module build failed
Apr 17 Javascript
vue keep-alive实现多组件嵌套中个别组件存活不销毁的操作
Oct 30 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利用正则表达式解决采集内容排版的问题
2013/06/20 PHP
php堆排序实现原理与应用方法
2015/01/03 PHP
php微信公众平台开发(四)回复功能开发
2016/12/06 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
2019/05/05 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
2019/10/18 PHP
cnblogs csdn 代码运行框实现代码
2009/11/02 Javascript
自动刷新网页,自动刷新当前页面,JS调用
2013/06/24 Javascript
javascript中undefined与null的区别
2015/08/16 Javascript
完美实现bootstrap分页查询
2015/12/09 Javascript
jQuery查看选中对象HTML代码的方法
2016/06/17 Javascript
微信小程序 图片等比例缩放(图片自适应屏幕)
2016/11/16 Javascript
使用Vue.js创建一个时间跟踪的单页应用
2016/11/28 Javascript
Bootstrap3下拉菜单的实现
2017/02/22 Javascript
详解如何使用Vue2做服务端渲染
2017/03/29 Javascript
vue 2.0路由之路由嵌套示例详解
2017/05/08 Javascript
使用Vuex实现一个笔记应用的方法
2018/03/13 Javascript
JS+CSS实现随机点名(实例代码)
2019/11/04 Javascript
vue项目中定义全局变量、函数的几种方法
2019/11/08 Javascript
基于openlayers实现角度测量功能
2020/09/28 Javascript
[01:38:19]夜魇凡尔赛茶话会 第五期
2021/03/11 DOTA
浅要分析Python程序与C程序的结合使用
2015/04/07 Python
Python中编写ORM框架的入门指引
2015/04/29 Python
python实现逻辑回归的方法示例
2017/05/02 Python
python 列表中[ ]中冒号‘:’的作用
2019/04/30 Python
python实现数据分析与建模
2019/07/11 Python
如何使用Flask-Migrate拓展数据库表结构
2019/07/24 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
基于Python绘制个人足迹地图
2020/06/01 Python
商务英语求职自荐信范文
2013/12/24 职场文书
运动会班级口号
2014/06/09 职场文书
2014年安全生产责任书
2014/07/22 职场文书
校运动会广播稿(100篇)
2014/09/12 职场文书
领导欢迎词范文
2015/01/26 职场文书
青岛海底世界导游词
2015/02/11 职场文书
2019西餐厅创业计划书范文!
2019/07/12 职场文书
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS