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 相关文章推荐
jquery中输入验证中一个不错的效果
Aug 21 Javascript
绑定回车enter事件代码
May 18 Javascript
JS动态加载当前时间的方法
Feb 09 Javascript
使用AngularJS处理单选框和复选框的简单方法
Jun 19 Javascript
jQuery的Each比JS原生for循环性能慢很多的原因
Jul 05 Javascript
js中的eval()函数把含有转义字符的字符串转换成Object对象的方法
Dec 02 Javascript
使用JavaScript开发跨平台的桌面应用详解
Jul 27 Javascript
Taro集成Redux快速上手的方法示例
Jun 21 Javascript
7个好用的JavaScript技巧分享(译)
May 07 Javascript
vue轻量级框架无法获取到vue对象解决方法
May 12 Javascript
利用js canvas实现五子棋游戏
Oct 11 Javascript
Ant Design moment对象和字符串之间的相互转化教程
Oct 27 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初学者的8点有效建议
2010/11/20 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
2014/07/05 PHP
php需登录的文件上传管理系统
2020/03/21 PHP
统一接口:为FireFox添加IE的方法和属性的js代码
2007/03/25 Javascript
javascript+iframe 实现无刷新载入整页的代码
2010/03/17 Javascript
网站404页面3秒后跳到首页的实例代码
2013/08/16 Javascript
js实现点击添加一个input节点
2014/12/05 Javascript
js显示文本框提示文字的方法
2015/05/07 Javascript
jQuery实现的分子运动小球碰撞效果
2016/01/27 Javascript
JS基础随笔(菜鸟必看篇)
2016/07/13 Javascript
js实现图片360度旋转
2017/01/22 Javascript
jQuery导航条固定定位效果实例代码
2017/05/26 jQuery
Angular开发实践之服务端渲染
2018/03/29 Javascript
微信小程序自定义单项选择器样式
2019/07/25 Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
2019/12/04 Javascript
JavaScript canvas仿代码流瀑布
2020/02/10 Javascript
[01:20]辉夜杯背景故事宣传片《辉夜传说》
2015/12/25 DOTA
[42:04]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第一局
2016/03/03 DOTA
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
pandas的唯一值、值计数以及成员资格的示例
2018/07/25 Python
实例详解Python模块decimal
2019/06/26 Python
python查看矩阵的行列号以及维数方式
2020/05/22 Python
html5本地存储_动力节点Java学院整理
2017/07/12 HTML / CSS
纪伊国屋泰国网上书店:Kinokuniya泰国
2017/12/24 全球购物
世界上最大的罕见唱片、CD和音乐纪念品网上商店:991.com
2018/05/03 全球购物
倩碧英国官网:Clinique英国
2018/08/10 全球购物
阿里巴巴Oracle DBA笔试题答案-备份恢复类
2013/11/20 面试题
计算机操作自荐信
2013/12/07 职场文书
秋季运动会稿件
2014/01/30 职场文书
《我要的是葫芦》教学反思
2014/02/23 职场文书
2014年班级工作总结范文
2014/12/23 职场文书
教师自荐信范文
2015/03/06 职场文书
实习单位推荐信
2015/03/27 职场文书
罚款通知怎么写
2015/04/22 职场文书
导游词之泰山玉皇顶
2019/12/23 职场文书
关于MySQL中explain工具的使用
2023/05/08 MySQL