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构建页面的DOM节点结构的实现代码
Dec 09 Javascript
js动画(animate)简单引擎代码示例
Dec 04 Javascript
javascript常用功能汇总
Jul 05 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
May 05 Javascript
AngularJS ng-bind-html 指令详解及实例代码
Jul 30 Javascript
node下使用UglifyJS压缩合并JS文件的方法
Mar 07 Javascript
react-native 圆弧拖动进度条实现的示例代码
Apr 12 Javascript
微信小程序开发背景图显示功能
Aug 08 Javascript
微信小程序支付PHP代码
Aug 23 Javascript
vue  自定义组件实现通讯录功能
Sep 30 Javascript
Django+Vue实现WebSocket连接的示例代码
May 28 Javascript
原生js实现的移动端可拖动进度条插件功能详解
Aug 15 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与SQL注入攻击[三]
2007/04/17 PHP
php模仿asp Application对象在线人数统计实现方法
2015/01/04 PHP
PHP的APC模块实现上传进度条
2015/10/27 PHP
Yii2框架视图(View)操作及Layout的使用方法分析
2019/05/27 PHP
FireFox下XML对象转化成字符串的解决方法
2011/12/09 Javascript
基于jquery实现的定时显示与隐藏div广告的实现代码
2013/08/22 Javascript
JS教程:window.location使用方法的区别介绍
2013/10/04 Javascript
javascript获取ckeditor编辑器的值(实现代码)
2013/11/18 Javascript
js call方法详细介绍(js 的继承)
2013/11/18 Javascript
当jQuery1.7遇上focus方法的问题
2014/01/26 Javascript
jquery单行文字向上滚动效果示例
2014/03/06 Javascript
jQuery修改class属性和CSS样式整理
2015/01/30 Javascript
AngularJS 作用域详解及示例代码
2016/08/17 Javascript
jQuery如何封装输入框插件
2016/08/19 Javascript
BootStrap 图片样式、辅助类样式和CSS组件的实例详解
2017/01/20 Javascript
vuejs通过filterBy、orderBy实现搜索筛选、降序排序数据
2020/10/26 Javascript
在 Linux/Unix 中不重启 Vim 而重新加载 .vimrc 文件的流程
2018/03/21 Javascript
基于vue.js组件实现分页效果
2018/12/29 Javascript
jQuery AJAX应用实例总结
2020/05/19 jQuery
[03:14]2014DOTA2西雅图国际邀请赛 EG战队巡礼
2014/07/07 DOTA
[00:35]DOTA2上海特级锦标赛 Newbee战队宣传片
2016/03/03 DOTA
Python语言技巧之三元运算符使用介绍
2013/03/04 Python
详解Django中六个常用的自定义装饰器
2018/07/04 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
html5基础教程常用技巧整理
2013/08/20 HTML / CSS
与UNIX有关的几个名词
2015/09/17 面试题
农药学硕士毕业生自荐信
2013/09/25 职场文书
纺织工程专业个人求职信范文
2014/01/27 职场文书
卫生安全检查制度
2014/02/04 职场文书
研究生个人学年总结
2015/02/14 职场文书
工程质检员岗位职责
2015/04/08 职场文书
社区安全温馨提示语
2015/07/14 职场文书
运动会广播稿200字
2015/08/19 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL
Springboot使用Spring Data JPA实现数据库操作
2021/06/30 Java/Android
python利用while求100内的整数和方式
2021/11/07 Python