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天然的迭代器
Oct 29 Javascript
JavaScript 高级篇之函数 (四)
Apr 07 Javascript
JavaScript将相对地址转换为绝对地址示例代码
Jul 19 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
Sep 24 Javascript
jQuery中:eq()选择器用法实例
Dec 29 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
Feb 23 Javascript
vue的Virtual Dom实现snabbdom解密
May 03 Javascript
微信小程序如何获知用户运行小程序的场景教程
May 17 Javascript
Three.js利用dat.GUI如何简化试验流程详解
Sep 26 Javascript
webpack4.x开发环境配置详解
Aug 04 Javascript
解决vue2 在mounted函数无法获取prop中的变量问题
Nov 15 Javascript
node.JS事件机制与events事件模块的使用方法详解
Feb 06 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小偷相关截取函数备忘
2010/11/28 PHP
php curl 上传文件代码实例
2015/04/27 PHP
PHP实现获取文件后缀名的几种常用方法
2015/08/08 PHP
php实现中文转数字
2016/02/18 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
Aster vs Newbee BO5 第二场2.19
2021/03/10 DOTA
javascript 写类方式之九
2009/07/05 Javascript
AlertBox 弹出层信息提示框效果实现步骤
2010/10/11 Javascript
javascript改变position值实现菜单滚动至顶部后固定
2013/01/18 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
ajax如何实现页面局部跳转与结果返回
2015/08/24 Javascript
JavaScript 七大技巧(二)
2015/12/13 Javascript
JavaScript实现点击按钮就复制当前网址
2015/12/14 Javascript
AngularJS向后端ASP.NET API控制器上传文件
2016/02/03 Javascript
AngularJS 入门教程之HTML DOM实例详解
2016/07/28 Javascript
微信小程序 UI布局常用技巧整理总结
2016/12/05 Javascript
JavaScript的事件机制详解
2017/01/17 Javascript
Angular 2父子组件数据传递之@Input和@Output详解 (上)
2017/07/05 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
angular6的响应式表单的实现
2018/10/10 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
2018/12/11 Javascript
基于Node.js搭建hexo博客过程详解
2019/06/25 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
2020/08/08 Javascript
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
python下MySQLdb用法实例分析
2015/06/08 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
Python Django 添加首页尾页上一页下一页代码实例
2019/08/21 Python
python 决策树算法的实现
2020/10/09 Python
意大利体育用品网上商城:Nencini Sport
2016/08/18 全球购物
美国综合购物商城:UnbeatableSale.com
2018/11/28 全球购物
司法局火灾防控方案
2014/06/05 职场文书
升学宴答谢词
2015/01/05 职场文书
原料仓管员岗位职责
2015/04/01 职场文书
pycharm无法导入lxml的解决办法
2021/03/31 Python
36个正则表达式(开发效率提高80%)
2021/11/17 Javascript
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技