最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Angularjs使用指令做表單校驗(yàn)的方法

 更新時(shí)間:2017年03月31日 14:46:41   作者:懷疑真愛(ài)的流浪者jason  
本篇文章主要介紹了Angularjs使用指令做表單校驗(yàn)的方法,詳細(xì)的介紹了用指令做校驗(yàn)的方法,具有一定的參考價(jià)值,有興趣的可以了解一下。

前言

通常,使用angular做表單驗(yàn)證,一般都是把驗(yàn)證規(guī)則單獨(dú)寫為service,然后通過(guò)依賴注入的方式調(diào)用。在個(gè)別情況下,例如用戶注冊(cè)表單,需要根據(jù)用戶輸入給出不同提示信息,使用service略顯不合適宜,所以可以采用指令的方式。

簡(jiǎn)易表單

如下為一個(gè)簡(jiǎn)易表單,有四項(xiàng)提示信息,依據(jù)狀態(tài)呈現(xiàn)。校驗(yàn)規(guī)則為數(shù)字,大寫字母,小寫字母至少出現(xiàn)兩項(xiàng),通過(guò)正則配合ng-pattern能夠?qū)崿F(xiàn)相同的效果,此處僅為引入指令校驗(yàn),不做深究。其中,user-validator為自定義指令。

<form class="form-horizontal" name="form" role="form" ng-controller="ValidCtrl">
 <div class="form-group">
  <label for="user" class="col-sm-2 control-label" >用戶名</label>
  <div class="col-sm-5">
   <input type="text" ng-model="user" name="user" id="user" user-validator class="form-control" required="required">
  </div>
  <label class="col-sm-5" ng-show="form.user.$pristine">請(qǐng)輸入用戶名</label>
  <label class="col-sm-5" ng-show="form.user.$error.required && form.user.$dirty">
   用戶名不能為空
  </label>
  <label class="col-sm-5" ng-show="form.user.$error.defined && form.user.$dirty">
   用戶名不符合規(guī)則
  </label>
  <label class="col-sm-5" ng-show="form.user.$valid && form.user.$dirty">
   用戶名有效
  </label>
 </div>
</form>

校驗(yàn)指令

校驗(yàn)指令代碼如下:

angular.module('shuffleApp', [])
 .directive('userValidator', ['$log', function($log) {
   return {
     restrict: 'A',
     require: 'ngModel',
     link: function($scope, $element, $attrs, $ngModelCtrl) {
       var verifyRule = [/^\d+$/, /^[a-z]+$/, /^[A-Z]+$/];
       var verify = function(input) {
         return !(verifyRule[0].test(input) || 
              verifyRule[1].test(input) || 
              verifyRule[2].test(input));
       };
       $ngModelCtrl.$parsers.push(function(input) {
         var validity = verify(input);
         $ngModelCtrl.$setValidity('defined', validity);
         return validity ? input : false;
       });
       $ngModelCtrl.$formatters.push(function(input) {
         var validity = verify(input);
         $ngModelCtrl.$setValidity('defined', validity);
         return validity ? input : false;
       })
     }
   }
  }]);

指令內(nèi)容非常簡(jiǎn)單,檢測(cè)是否全為數(shù)字,小寫字母,大寫字母,然后取反即得到校驗(yàn)結(jié)果。然后在$parser, $formatter內(nèi)部設(shè)置校驗(yàn)結(jié)果即可。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

白城市| 巴楚县| 琼海市| 湖口县| 苏尼特右旗| 桓仁| 卢氏县| 岳西县| 曲松县| 明光市| 大英县| 马边| 平南县| 望江县| 五峰| 曲周县| 吉水县| 独山县| 休宁县| 黔江区| 专栏| 梨树县| 松滋市| 娱乐| 峨眉山市| 青冈县| 泗水县| 台北市| 南丰县| 辰溪县| 观塘区| 焦作市| 万宁市| 衡南县| 英德市| 阿克陶县| 修武县| 洪江市| 内黄县| 通江县| 太康县|