angularjs表单文本框验证:输入九位数或将其留空

时间:2014-09-30 14:39:04

标签: angularjs validation angularjs-directive

我要求验证文本框,当用户选择输入税号时,他们必须输入9位,否则将文本框留空,表单有效并启用提交按钮。我试图这样做。但这不起作用。请告诉我更好的方法。

   <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>

感谢。

2 个答案:

答案 0 :(得分: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 = "";
}

答案 1 :(得分:0)

您可以使用ng-pattern

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

结帐plunker