2015-09-23 61 views
2

我需要驗證ng-list,意味着應限制用戶輸入三個以上的數組列表,如['121','565','435'],如果用戶嘗試輸入像['121','565','435','787']應該給出錯誤,只能輸入3個vinAngularJS中的ng-list長度驗證

此外,如果用戶輸入['**1214**','565','435']像上面它應該告訴只有3位數是允許的。

這是我輸入字段:

<input type="text" name="vin" id="vin" class="form-control" 
ng-model="vm.user.vin" ng-list required max-length="3"/> 

我在AngularJS新。

+0

哦..這很緊急?好吧,讓我清除我的盤子上的所有內容,爲您編寫代碼。向我們展示你的第一個。 – sirrocco

+1

我投票結束這個問題作爲題外話,因爲用戶要求爲他寫代碼 – sirrocco

+0

@sirrocco ...很酷。他給了我們足夠的細節。 '我是新角色js',這就是爲什麼他要求從SO編寫代碼。 :) ... –

回答

0

我不知道默認的驗證爲NG-列表屬性,但你可以自定義喜歡

<input type="text" name="vin" id="vin" class="form-control" 
         ng-model="vm.user.vin" ng-list required max="3" ng-change="isBigEnough(vm.user.vin)" /> 

        <span ng-show="vm.user.vin.length > 3">array length should below than three</span> 
        <span ng-show="IsElementLength">element length should below than three</span> 

驗證和控制器端代碼

$scope.isBigEnough = function (values) { 
     if (values != undefined) { 
      values.every(function (element, index, array) { 
       if (element.length > 3) { 
        $scope.IsElementLength = true; 
        return false; 
       } 
       $scope.IsElementLength = false; 
       return true; 
      }) 
     } 

    } 

結果

  • ['121','565','435'] - 無錯誤信息
  • ['1211','565','435'] - 元素長度應該低於3
  • ['121','565','435','543'] - 數組長度應低於3
  • [ '1211', '565', '435', '543'] - 數組的長度應小於多於三個和元件長度應小於多於三個

我有帶來的代碼上plunker,但我沒有在暴徒身上測試它。

+0

這裏如果我提交表單,即使出現錯誤,它將觸及服務器IsElementLength – kiran

+0

我添加了標誌並解決了問題 – kiran