Angular获取手机验证码实现移动端登录注册功能

发布时间 - 2026-01-11 01:08:18    点击率:

之前一直在用jQuery来做项目,使用比较熟练,目前公司要求使用angular来做项目,遇到一个登录模块如下所示,功能有两个方面,一个是点击按钮获取验证码,一个是点击登录验证表单。从用户体验角度来考虑有两个要注意的地方,默认两个按钮应该都是不可点击的,输入正确的手机号时验证码的按钮可点击,当再输入验证码时登录按钮可点击。

 

代码结构如下:

<form name="loginForm" ng-controller="loginCtrl" ng-submit="submitForm(loginForm.$valid)" novalidate>
  <div class="inputItem">
    <input type="number" name="phoneNum" placeholder="手机号" ng-model="userPhone" ng-pattern="/^1[3|4|5|7|8]\d{9}$/" required/>
  </div>
  <div class="inputItem">
    <input type="number" name="phoneCode" placeholder="短信验证码" ng-model="userPhoneCode" ng-focus="errorHint=ture" required/>
    <div class="button01 null" ng-if="loginForm.phoneNum.$invalid">{{paracont}}</div>
    <div ng-class="paraclass" ng-click="loginCode()" ng-if="loginForm.phoneNum.$valid">{{paracont}}</div>
    <div class="errorHint fontred" ng-if="errorHint">验证码不正确</div>
  </div>
  <button type="submit" class="button02" ng-disabled="loginForm.$invalid">登 录</button>
</form>

之前写的一版没有对获取验证码按钮进行验证,后来修改了一下,验证码的按钮要在手机号输入正确时显示可点击,但是angular没有onInput这个方法,为了方便,写了两个按钮来实现这个效果。

样式如下:

.inputItem{
  width:6.4rem;
  height:0.9rem;
  margin:0 auto;
  border:1px solid #ccc;
  background:#fff;
}
.inputItem:first-child{
  border-bottom:none;
}
.inputItem input{
  padding:0.1rem 0;
  margin:0.2rem;
  width:3.7rem;
}
.button01{
  width:2rem;
  height:0.7rem;
  border:1px solid #ccc;
  text-align: center;
  line-height:0.7rem;
  font-size:0.26rem;
  float:right;
  margin:0.1rem 0.2rem 0 0;
  box-sizing:border-box;
}
.button01.null{
  color:#999;
}
.fontred{
  color:#red;
}
.button02{
  display:block;
  width:6.4rem;
  height:0.9rem;
  text-align: center;
  line-height:0.9rem;
  border:1px solid #ccc;
  margin:0.8rem auto 0;
  background:#fff; 
}
.errotHint{
  line-height:0.6rem;
  font-size:0.24rem;
  padding-left:0.2rem;
  }

接下来就是比较重要的AngularJS代码了:

angular.module('loginModule',[]).controller('loginCtrl',['$scope','$interval',function($scope,$interval){
  //获取验证码
  $scope.paracont = '获取验证码';
  $scope.paraclass = 'button01';
  $scope.errorHint = false;
  $scope.paraevent = true;
  $scope.loginCode = function(){
    if($scope.paraevent){
      var second = 59;
      $scope.paracont = second + '秒后重发';
      $scope.paraclass = 'null button01';
      var timer = $interval(function(){
        if(second <=0){
          $interval.cancel(timer);
          $scope.paracont = '重发验证码';
          second = 59;
          $scope.paraclass = 'button01';
          $scope.paraevent = true;
        }else{
          second--;
          $scope.paracont = second + '秒后重发';
          $scope.paraevent = false;
        }        
      },1000);
    }
  }
  //提交
  $scope.submitForm = function(isValid){
    if(isValid){
      alert("success!");   
    }
  }  
}])

最终写出来的效果就是下面这个样子了。

以上所述是小编给大家介绍的Angular获取手机验证码实现移动端登录注册功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# angularjs  # 获取验证码  # 验证码  # Ionic+AngularJS实现登录和注册带验证功能  # ionic+AngularJs实现获取验证码倒计时按钮  # 使用jQuery  # Angular实现登录界面验证码详解  # AngularJS 验证码60秒倒计时功能的实现  # Ionic + Angular.js实现验证码倒计时功能的方法  # 重发  # 来做  # 小编  # 都是  # 有两个  # 在此  # 要在  # 要注意  # 给大家  # 写了  # 所示  # 表单  # 来实现  # 不正确  # 所述  # 给我留言  # 感谢大家  # 疑问请  # 有任何 


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


相关推荐: Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  Android使用GridView实现日历的简单功能  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  浅谈redis在项目中的应用  Laravel如何实现本地化和多语言支持?(i18n教程)  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  高性价比服务器租赁——企业级配置与24小时运维服务  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  Laravel如何使用Passport实现OAuth2?(完整配置步骤)  Laravel如何实现用户注册和登录?(Auth脚手架指南)  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  微信小程序 scroll-view组件实现列表页实例代码  LinuxShell函数封装方法_脚本复用设计思路【教程】  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  如何快速完成中国万网建站详细流程?  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  Laravel如何配置任务调度?(Cron Job示例)  Laravel如何实现API速率限制?(Rate Limiting教程)  详解阿里云nginx服务器多站点的配置  零基础网站服务器架设实战:轻量应用与域名解析配置指南  高端智能建站公司优选:品牌定制与SEO优化一站式服务  开心动漫网站制作软件下载,十分开心动画为何停播?  Laravel如何使用.env文件管理环境变量?(最佳实践)  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  jQuery validate插件功能与用法详解  如何在阿里云购买域名并搭建网站?  如何在万网自助建站中设置域名及备案?  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  进行网站优化必须要坚持的四大原则  如何用VPS主机快速搭建个人网站?  jQuery 常见小例汇总  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  黑客如何通过漏洞一步步攻陷网站服务器?  如何撰写建站申请书?关键要点有哪些?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  微信小程序 HTTPS报错整理常见问题及解决方案  教你用AI将一段旋律扩展成一首完整的曲子  javascript基于原型链的继承及call和apply函数用法分析