2014-09-30 60 views
1

我得到了驗證文本框的要求,當用戶選擇輸入稅號時,他們必須輸入9位數字,否則將文本框留空,表單爲空有效且提交按鈕已啓用。我正在嘗試這樣做。但這不起作用。請讓我知道更好的方法來做到這一點。angularjs表單文本框驗證:輸入九位數字或保留爲空

<form name ="tinForm"> 
     <div class="form-group"> 
       <input type="text" 
        ng-model="person.tin" 
        name="tin" 
        ng-minlength="9" 
        maxlength="9"/> 
       <span class="help-block" ng-show="tinForm.tin.$invalid"> Please enter 9 digits </span> 
      </div> 
      </form> 

     <div> 
      <button ng-disabled="!tinForm.person.tin.$valid">Submit</button> 
     </div> 

謝謝。

+0

你有問題嗎? – djv 2014-09-30 14:42:57

+0

@dalorzo的答案很好,但你也可以使用ng-pattern。 – 2014-09-30 15:12:03

回答

0

您可以使用NG模式

<form name="myform"> 
    <input type="text" name="myfield" ng-model="abcd" ng-pattern="/^$|^[0-9X]{10}$/"> 
    <span>valid : {{myform.myfield.$valid}}</span> 
</form> 

結帳這個plunker

檢查
1

可以使用ngBlur做這樣的事情:

<input type="text" ng-blur="testLength()" 
        ng-model="person.tin" 
        name="tin" 
        ng-minlength="9" 
        maxlength="9"/> 

在您的控制器:

$scope.testLength=function(){ 
    if (person.tin.length <9) 
    person.tin = ""; 
}