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 相关文章推荐
Ext修改GridPanel数据和字体颜色、css属性等
Jun 13 Javascript
Javascript简单改变表单元素背景的方法
Jul 15 Javascript
javascript显示上周、上个月日期的处理方法
Feb 03 Javascript
浅谈javascript的call()、apply()、bind()的用法
Feb 21 Javascript
js制作网站首页图片轮播特效代码
Aug 30 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
Sep 06 Javascript
基于jQuery实现顶部导航栏功能
Dec 27 Javascript
vue-resource调用promise取数据方式详解
Jul 21 Javascript
Vue 中使用 CSS Modules优雅方法
Apr 09 Javascript
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
Nov 12 Javascript
ElementUI中el-tree节点的操作的实现
Feb 27 Javascript
写给新手同学的vuex快速上手指北小结
Apr 14 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批量删除数据
2007/01/18 PHP
php下使用SimpleXML 处理XML 文件
2010/02/27 PHP
PHP中include()与require()的区别说明
2010/03/10 PHP
Laravel 5框架学习之表单
2015/04/08 PHP
javascript 尚未实现错误解决办法
2008/11/27 Javascript
javascript 触发事件列表 比较不错
2009/09/03 Javascript
jQuery下的动画处理总结
2013/10/10 Javascript
获取中文字符串的实际长度代码
2014/06/05 Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
2015/09/16 Javascript
javascript实现标签切换代码示例
2016/05/22 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
Vue.js实现简单动态数据处理
2017/02/13 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
2017/06/12 Javascript
浅谈ECMAScript6新特性之let、const
2017/08/02 Javascript
Vue实现typeahead组件功能(非常靠谱)
2017/08/26 Javascript
详解如何在你的Vue项目配置vux
2018/06/04 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
2019/04/04 Javascript
小程序如何支持使用 async/await详解
2019/09/12 Javascript
Layui带搜索的下拉框的使用以及动态数据绑定方法
2019/09/28 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
解决Python的str强转int时遇到的问题
2018/04/09 Python
利用Python如何将数据写到CSV文件中
2018/06/05 Python
Python常用的json标准库
2019/02/19 Python
利用Python小工具实现3秒钟将视频转换为音频
2019/10/29 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
一文带你了解Python 四种常见基础爬虫方法介绍
2020/12/04 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
2021/02/27 Python
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
2015/02/22 面试题
介绍一下Linux文件的记录形式
2012/04/18 面试题
会计专业自荐信范文
2013/12/02 职场文书
歌唱比赛获奖感言
2014/01/21 职场文书
六五普法规划实施方案
2014/03/21 职场文书
2014年“四风”问题个人整改措施
2014/09/17 职场文书
群众路线班子对照检查材料
2014/09/25 职场文书
出差报告格式模板
2014/11/06 职场文书