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入门基础之私有变量
Feb 23 Javascript
不使用中间变量,交换int型的 a, b两个变量的值。
Oct 29 Javascript
JQuery-tableDnD 拖拽的基本使用介绍
Jul 04 Javascript
js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法
Apr 25 Javascript
全面详细的jQuery常见开发技巧手册
Feb 21 Javascript
15位和18位身份证JS校验的简单实例
Jul 18 Javascript
ES6新特性三: Generator(生成器)函数详解
Apr 21 Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
May 17 Javascript
JavaScript多线程运行库Nexus.js详解
Dec 22 Javascript
vue-cli配置环境变量的方法
Jul 09 Javascript
Vue Cli3 创建项目的方法步骤
Oct 15 Javascript
使用JavaScript解析URL的方法示例
Mar 01 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获取一个变量的名字的方法
2014/09/05 PHP
PHP输出缓冲控制Output Control系列函数详解
2015/07/02 PHP
PHP 常用时间函数资料整理
2016/10/22 PHP
PHP使用curl制作简易百度搜索
2016/11/03 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
Nigma vs AM BO3 第二场2.13
2021/03/10 DOTA
Display SQL Server Login Mode
2007/06/21 Javascript
Yii-自定义删除确认弹框(zyd)jquery实现代码
2013/03/04 Javascript
jquery实现文字由下到上循环滚动的实例代码
2013/08/09 Javascript
javascript内置对象arguments详解
2014/03/16 Javascript
jQuery固定浮动侧边栏实现思路及代码
2014/09/28 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
2014/12/19 Javascript
JS实现为表格动态添加标题的方法
2015/03/31 Javascript
js由下向上不断上升冒气泡效果实例
2015/05/07 Javascript
如何利用AngularJS打造一款简单Web应用
2015/12/05 Javascript
基于jquery实现图片放大功能
2016/05/07 Javascript
利用Jquery实现几款漂亮实用的时间轴(附示例代码)
2017/02/15 Javascript
xmlplus组件设计系列之路由(ViewStack)(7)
2017/05/02 Javascript
利用Console来Debug的10个高级技巧汇总
2018/03/26 Javascript
举例讲解Python设计模式编程中对抽象工厂模式的运用
2016/03/02 Python
Python探索之pLSA实现代码
2017/10/25 Python
Python文本处理之按行处理大文件的方法
2018/04/09 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
2018/07/11 Python
使用 Python 实现文件递归遍历的三种方式
2018/07/18 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
2018/11/07 Python
20行python代码实现人脸识别
2019/05/05 Python
python实现弹跳小球
2019/05/13 Python
django将数组传递给前台模板的方法
2019/08/06 Python
python 单线程和异步协程工作方式解析
2019/09/28 Python
即将毕业大学生自荐信
2014/01/24 职场文书
大学新生军训感言
2014/02/25 职场文书
加多宝凉茶广告词
2014/03/18 职场文书
个人求职信范文
2014/05/24 职场文书
2014年招商工作总结
2014/11/22 职场文书
《彼得与狼》教学反思
2016/02/20 职场文书
Python3 类型标注支持操作
2021/06/02 Python