最新国产好看的视频,伊人天堂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ú)寫(xiě)為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ě)字母,小寫(xiě)字母至少出現(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ù)字,小寫(xiě)字母,大寫(xiě)字母,然后取反即得到校驗(yàn)結(jié)果。然后在$parser, $formatter內(nèi)部設(shè)置校驗(yàn)結(jié)果即可。

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

相關(guān)文章

最新評(píng)論

南投县| 双江| 昌乐县| 神农架林区| 隆安县| 酒泉市| 富宁县| 和林格尔县| 喀什市| 安西县| 曲靖市| 江油市| 临朐县| 嘉荫县| 额济纳旗| 怀远县| 公主岭市| 阳江市| 岳阳县| 宁德市| 饶阳县| 类乌齐县| 赤峰市| 和龙市| 建德市| 伊春市| 澳门| 广平县| 谢通门县| 濮阳县| 宜兴市| 中超| 江北区| 金华市| 巴青县| 鲁山县| 类乌齐县| 长治县| 龙州县| 荃湾区| 浑源县|