欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Angular獲取手機(jī)驗(yàn)證碼實(shí)現(xiàn)移動(dòng)端登錄注冊(cè)功能

 更新時(shí)間:2017年05月17日 08:56:45   作者:Charissa666  
最近在使用angular來(lái)做項(xiàng)目,功能要求實(shí)現(xiàn)一是點(diǎn)擊按鈕獲取驗(yàn)證碼,二是點(diǎn)擊登錄驗(yàn)證表單。之前用jquery來(lái)做項(xiàng)目很好做,使用angular怎么實(shí)現(xiàn)呢?其實(shí)實(shí)現(xiàn)代碼也很簡(jiǎn)單的,下面通過(guò)實(shí)例代碼給大家介紹下,需要的朋友參考下吧

之前一直在用jQuery來(lái)做項(xiàng)目,使用比較熟練,目前公司要求使用angular來(lái)做項(xiàng)目,遇到一個(gè)登錄模塊如下所示,功能有兩個(gè)方面,一個(gè)是點(diǎn)擊按鈕獲取驗(yàn)證碼,一個(gè)是點(diǎn)擊登錄驗(yàn)證表單。從用戶(hù)體驗(yàn)角度來(lái)考慮有兩個(gè)要注意的地方,默認(rèn)兩個(gè)按鈕應(yīng)該都是不可點(diǎn)擊的,輸入正確的手機(jī)號(hào)時(shí)驗(yàn)證碼的按鈕可點(diǎn)擊,當(dāng)再輸入驗(yàn)證碼時(shí)登錄按鈕可點(diǎn)擊。

這里寫(xiě)圖片描述 

代碼結(jié)構(gòu)如下:

<form name="loginForm" ng-controller="loginCtrl" ng-submit="submitForm(loginForm.$valid)" novalidate>
  <div class="inputItem">
    <input type="number" name="phoneNum" placeholder="手機(jī)號(hào)" ng-model="userPhone" ng-pattern="/^1[3|4|5|7|8]\d{9}$/" required/>
  </div>
  <div class="inputItem">
    <input type="number" name="phoneCode" placeholder="短信驗(yàn)證碼" 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">驗(yàn)證碼不正確</div>
  </div>
  <button type="submit" class="button02" ng-disabled="loginForm.$invalid">登 錄</button>
</form>

之前寫(xiě)的一版沒(méi)有對(duì)獲取驗(yàn)證碼按鈕進(jìn)行驗(yàn)證,后來(lái)修改了一下,驗(yàn)證碼的按鈕要在手機(jī)號(hào)輸入正確時(shí)顯示可點(diǎn)擊,但是angular沒(méi)有onInput這個(gè)方法,為了方便,寫(xiě)了兩個(gè)按鈕來(lái)實(shí)現(xiàn)這個(gè)效果。

樣式如下:

.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;
  }

接下來(lái)就是比較重要的AngularJS代碼了:

angular.module('loginModule',[]).controller('loginCtrl',['$scope','$interval',function($scope,$interval){
  //獲取驗(yàn)證碼
  $scope.paracont = '獲取驗(yàn)證碼';
  $scope.paraclass = 'button01';
  $scope.errorHint = false;
  $scope.paraevent = true;
  $scope.loginCode = function(){
    if($scope.paraevent){
      var second = 59;
      $scope.paracont = second + '秒后重發(fā)';
      $scope.paraclass = 'null button01';
      var timer = $interval(function(){
        if(second <=0){
          $interval.cancel(timer);
          $scope.paracont = '重發(fā)驗(yàn)證碼';
          second = 59;
          $scope.paraclass = 'button01';
          $scope.paraevent = true;
        }else{
          second--;
          $scope.paracont = second + '秒后重發(fā)';
          $scope.paraevent = false;
        }        
      },1000);
    }
  }
  //提交
  $scope.submitForm = function(isValid){
    if(isValid){
      alert("success!");   
    }
  }  
}])

最終寫(xiě)出來(lái)的效果就是下面這個(gè)樣子了。

這里寫(xiě)圖片描述

以上所述是小編給大家介紹的Angular獲取手機(jī)驗(yàn)證碼實(shí)現(xiàn)移動(dòng)端登錄注冊(cè)功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評(píng)論