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的Eval函数
Jul 26 Javascript
使用js操作cookie的一点小收获分享
Sep 03 Javascript
jquery datepicker参数介绍和示例
Apr 15 Javascript
JavaScript的jQuery库插件的简要开发指南
Aug 12 Javascript
js仿黑客帝国字母掉落效果代码分享
Nov 08 Javascript
基于Jquery和html5实现炫酷的3D焦点图动画
Mar 02 Javascript
js事件驱动机制 浏览器兼容处理方法
Jul 23 Javascript
jQuery插件EasyUI设置datagrid的checkbox为禁用状态的方法
Aug 05 Javascript
jquery过滤特殊字符',防sql注入的实现方法
Aug 17 Javascript
jQuery中元素选择器(element)简单用法示例
May 14 jQuery
小程序的上传文件接口的注意要点解析
Sep 17 Javascript
javascript中可能用得到的全部的排序算法
Mar 05 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面向对象全攻略 (八)重载新的方法
2009/09/30 PHP
php接口与接口引用的深入解析
2013/08/09 PHP
PHP动态生成javascript文件的2个例子
2014/04/11 PHP
PHP使用memcache缓存技术提高响应速度的方法
2014/12/26 PHP
PHP中子类重载父类的方法【parent::方法名】
2016/05/06 PHP
基于PHP后台的Android新闻浏览客户端
2016/05/23 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
十个优秀的Ajax/Javascript实例网站收集
2010/03/31 Javascript
javascript客户端解决方案 缓存提供程序
2010/07/14 Javascript
两种常用的javascript数组去重方法思路及代码
2013/03/26 Javascript
前端必备神器 Snap.svg 弹动效果
2014/11/10 Javascript
node.js中的fs.unlinkSync方法使用说明
2014/12/15 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
Bootstrap禁用响应式布局的实现方法
2017/03/09 Javascript
初识NodeJS服务端开发入门(Express+MySQL)
2017/04/07 NodeJs
Vue自定义指令使用方法详解
2017/08/21 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
2018/09/21 Javascript
详解关于vue2.0工程发布上线操作步骤
2018/09/27 Javascript
通过vue手动封装on、emit、off的代码详解
2019/05/29 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
vue-router的hooks用法详解
2020/06/08 Javascript
node.js文件的复制、创建文件夹等相关操作
2021/02/05 Javascript
[02:37]2015国际邀请赛选手档案—LGD.Xiao8
2015/07/28 DOTA
Python threading多线程编程实例
2014/09/18 Python
用Python编写一个简单的俄罗斯方块游戏的教程
2015/04/03 Python
Python多进程分块读取超大文件的方法
2016/04/13 Python
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
2019/05/13 Python
django的csrf实现过程详解
2019/07/26 Python
最简单的matplotlib安装教程(小白)
2020/07/28 Python
表单button的outline在firefox浏览器下的问题
2012/12/24 HTML / CSS
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
2014年感恩节活动策划方案
2014/10/06 职场文书
写好Python代码的几条重要技巧
2021/05/21 Python
MySQL系列之六 用户与授权
2021/07/02 MySQL