2016-11-07 59 views
0

为什么下面的angularjs形式抛出下面的错误,而没有在输入字段中输入任何内容,也没有点击它。
投掷在“这是一个有效的名字!”现场错误。在同一时间,即使没有打字或点击字段。 有谁知道原因?
即使没有触及字段,也会出现angularjs错误信息

<div class="form-group" ng-class="{'has-error':Form.field1.$dirty && Form.field1.$invalid, 'has-success':Form.field1.$valid}" > 
    <label class="control-label" > 
     Name 
    </label> 
    <input class="form-control" ng-model="myModel.field1" ng-minlength="3" ng-maxlength="20" 
      style="" type="text" name="field1" placeholder="Enter the name"/> 
    <p class="error text-small block" ng-show="Form.field1.$error.maxlength">Too long!</p> 
    <p class="error text-small block" ng-show="Form.field1.$error.minlength">Too short!</p> 
    <p class="error text-small block" ng-show="Form.field1.$dirty && Form.field1.$error">Error in the field.</p> 
    <p class="success text-small" ng-show="Form.field1.$valid">It's a valid name!</p> 
</div> 

回答

1

的原因是因为其具有的长度为0的有效期为 'NG-MINLENGTH'。
如果你想让0无效,你必须使用'ng-required'。

我的猜测是,你想要的东西类似如下:

<div class="form-group" ng-class="{'has-error':Form.field1.$dirty && Form.field1.$invalid, 'has-success':Form.field1.$valid}"> 
    <label class="control-label" > 
     Name 
    </label> 
    <input class="form-control" ng-model="myModel.field1" ng-minlength="3" ng-maxlength="20" ng-required="true" 
      style="" type="text" name="field1" placeholder="Enter the name"/> 
    <p class="error text-small block" ng-show="Form.field1.$dirty && Form.field1.$error.maxlength">Too long!</p> 
    <p class="error text-small block" ng-show="Form.field1.$dirty && Form.field1.$error.minlength">Too short!</p> 
    <p class="error text-small block" ng-show="Form.field1.$dirty && Form.field1.$error.required">Required!</p> 
    <p class="error text-small block" ng-show="Form.field1.$dirty && (Form.field1.$error.maxlength || Form.field1.$error.minlength || Form.field1.$error.required)">Error in the field.</p> 
    <p class="success text-small" ng-show="Form.field1.$valid">It's a valid name!</p> 
</div> 
相关问题