2015-02-24 35 views
3

表單字段沒有被添加ng-touched類,而不是仍然ng-pristineNG-感動不工作 - AngularJS

這是我的形式:

<form novalidate class="css-form"> 

      <div class="form-group clearfix"> 
       <label class="col-xs-12 col-sm-6 col-md-4">State Code</label> 
       <div class="col-xs-12 col-sm-6 col-md-8"> 
        <input type="text" class="form-control" ng-maxlength="2" ng-model="ObjectNew.stateCode" required> 
       </div> 
      </div> 
      <div class="clearfix"></div> 

      <div class="form-group clearfix"> 
       <label class="col-xs-12 col-sm-6 col-md-4">Zip</label> 
       <div class="col-xs-12 col-sm-6 col-md-8"> 
        <input type="text" class="form-control" ng-model="ObjectNew.zip" required> 
       </div> 
      </div> 
      <div class="clearfix"></div> 

     </form> 

當我看到在檢查元素,但它僅顯示ng-pristine類在每個領域,即使我通過兩個領域,並留下空。 它也顯示ng-invalid,這很好。

有實際添加的樣式:

.css-form input.ng-invalid.ng-touched { 
    background-color: #FA787E !important; 
    } 

    .css-form input.ng-valid.ng-touched { 
    background-color: #78FA89 !important; 
    } 
+3

確保您使用Angular 1.3.x版本。 – dfsq 2015-02-24 11:15:52

+0

糟糕!目前使用1.2.26 - 升級到1.3x後需要確保什麼?我的意思是我會失去一些東西,一些支持? – Fahad 2015-02-24 11:18:14

+1

此外,只有在元素失去焦點時纔會添加比'ng-touched'類更多的元素,而不是在點擊元素後立即添加。 – kamituel 2015-02-24 11:19:04

回答

10

術語pristinetouched不相似。只要尚未修改,輸入將保持爲pristine。它是untouched,只要它沒有散焦 - Angular doc statesng-touched在「控制模糊」時應用。

所以這是可能的輸入是純潔和感動 - 只需點擊它,然後單擊其他地方,而無需輸入任何東西

也可以爲它是骯髒的和原始的 - 點擊它,鍵入一些文字,但請勿在其他地方點擊

要看到這一點,並看到工作ng-touched在行動,請參閱此jsFiddle

爲了確保它能夠正常工作,請使用@dfsq指出的Angular 1.3。此外,請使用與您的Angular版本匹配的angular-touch。上面的JSFiddle正常工作。