2016-11-07 55 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> 
相關問題