Angular獲取手機(jī)驗(yàn)證碼實(shí)現(xiàn)移動(dòng)端登錄注冊(cè)功能
之前一直在用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)擊。
代碼結(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è)樣子了。
以上所述是小編給大家介紹的Angular獲取手機(jī)驗(yàn)證碼實(shí)現(xiàn)移動(dòng)端登錄注冊(cè)功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
angularjs2中父子組件的數(shù)據(jù)傳遞的實(shí)例代碼
本篇文章主要介紹了angularjs2中父子組件的數(shù)據(jù)傳遞的實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07詳解用webpack2搭建angular2的項(xiàng)目
本篇文章主要介紹了詳解用webpack2搭建angular2的項(xiàng)目 ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06Angularjs實(shí)現(xiàn)控制器之間通信方式實(shí)例總結(jié)
這篇文章主要介紹了Angularjs實(shí)現(xiàn)控制器之間通信方式,結(jié)合實(shí)例形式總結(jié)分析了AngularJS控制器常用通信方式及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-03-03AngualrJS中的Directive制作一個(gè)菜單
本文給大家介紹AngualrJS中的Directive制作一個(gè)菜單,涉及到angularjs directive相關(guān)知識(shí),本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,特此分享供大家學(xué)習(xí)2016-01-01Angular-UI Bootstrap組件實(shí)現(xiàn)警報(bào)功能
這篇文章主要介紹了Angular-UI Bootstrap組件實(shí)現(xiàn)警報(bào)功能,對(duì)Angular.js services的學(xué)習(xí)有所幫助,需要的朋友可以參考下2018-07-07AngularJS點(diǎn)擊添加樣式、點(diǎn)擊變色設(shè)置的實(shí)例代碼
本篇文章主要介紹了AngularJS點(diǎn)擊添加樣式、點(diǎn)擊變色設(shè)置的實(shí)例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07后端接收不到AngularJs中$http.post發(fā)送的數(shù)據(jù)原因分析及解決辦法
這篇文章主要介紹了后端接收不到AngularJs中$http.post發(fā)送的數(shù)據(jù)原因分析及解決辦法的相關(guān)資料,需要的朋友可以參考下2016-07-07AngularJS日期格式化常見(jiàn)操作實(shí)例分析
這篇文章主要介紹了AngularJS日期格式化常見(jiàn)操作,結(jié)合實(shí)例形式分析了AngularJS日期格式化常用參數(shù)功能、設(shè)置與使用技巧,需要的朋友可以參考下2018-05-05