ionic+AngularJs实现获取验证码倒计时按钮

发布时间 - 2026-01-11 00:46:34    点击率:

按钮功能为:点击“获取验证码”——按钮不可用-设置倒计时-60秒后重新获取。

主要实现原理:点击后,设置一个$interval,每一秒更改一次剩余时间,并依赖Angular数据绑定实时显示在页面中。设置一个$timeout,60秒后将按钮初始化到可用状态。

实现代码:

(1)js代码,设置成一个directive以便多次调用。

angular.module('winwin').directive('timerbutton', function($timeout, $interval){
  return {
    restrict: 'AE',
    scope: {
      showTimer: '=',
      timeout: '='
    },
    link: function(scope, element, attrs){
      scope.timer = false;
      scope.timeout = 60000;
      scope.timerCount = scope.timeout / 1000;
      scope.text = "获取验证码";

      scope.onClick = function(){
        scope.showTimer = true;
        scope.timer = true;
        scope.text = "秒后重新获取";
        var counter = $interval(function(){
          scope.timerCount = scope.timerCount - 1;
        }, 1000);

        $timeout(function(){
          scope.text = "获取验证码";
          scope.timer = false;
          $interval.cancel(counter);
          scope.showTimer = false;
          scope.timerCount = scope.timeout / 1000;
        }, scope.timeout);
      }
    },
    template: '<button on-tap="onClick()" class="button button-calm xgmm-btn" ng-disabled="timer"><span ng-if="showTimer">{{ timerCount }}</span>{{text}}</button>'
  };
});

(2)html代码

 <timerbutton show-timer="false">获取验证码</timerbutton>

实现效果:

(1)点击之前

  

(2)点击之后

   

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# ionic2  # 倒计时  # angularjs  # ionic  # JS 实现获取验证码 倒计时功能  # JS+HTML5实现获取手机验证码倒计时按钮  # Angular.js实现获取验证码倒计时60秒按钮的简单方法  # JS获取短信验证码倒计时的实现代码  # js实现简单的获取验证码按钮效果  # JavaScript获取短信验证码(周期性)  # JS实现用户注册时获取短信验证码和倒计时功能  # JS/jQ实现免费获取手机验证码倒计时效果  # js实现点击获取验证码倒计时效果  # JavaScript实现10秒后再次获取验证码  # 验证码  # 后将  # 绑定  # 大家多多  # 不可用  # 设置成  # 每一秒  # timerbutton  # winwin  # brush  # angular  # module  # AE  # scope  # showTimer  # function  # return  # restrict  # class 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在Windows 2008云服务器安全搭建网站?  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  如何解决hover在ie6中的兼容性问题  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  Python制作简易注册登录系统  nodejs redis 发布订阅机制封装实现方法及实例代码  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  Laravel中的withCount方法怎么高效统计关联模型数量  如何快速搭建高效WAP手机网站?  如何快速搭建高效简练网站?  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  个人网站制作流程图片大全,个人网站如何注销?  详解CentOS6.5 安装 MySQL5.1.71的方法  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  如何自定义建站之星网站的导航菜单样式?  Laravel怎么调用外部API_Laravel Http Client客户端使用  专业商城网站制作公司有哪些,pi商城官网是哪个?  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  ,怎么在广州志愿者网站注册?  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  如何在阿里云香港服务器快速搭建网站?  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  Laravel怎么使用Intervention Image库处理图片上传和缩放  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  高端智能建站公司优选:品牌定制与SEO优化一站式服务  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  在线教育网站制作平台,山西立德教育官网?  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  Laravel如何生成API文档?(Swagger/OpenAPI教程)  实现点击下箭头变上箭头来回切换的两种方法【推荐】  如何快速生成可下载的建站源码工具?  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  javascript中的try catch异常捕获机制用法分析  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  javascript基本数据类型及类型检测常用方法小结  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  音响网站制作视频教程,隆霸音响官方网站?  Laravel怎么使用artisan命令缓存配置和视图  Laravel怎么连接多个数据库_Laravel多数据库连接配置  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  零基础网站服务器架设实战:轻量应用与域名解析配置指南  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  如何在宝塔面板中修改默认建站目录?  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  Laravel如何生成URL和重定向?(路由助手函数)  Android利用动画实现背景逐渐变暗