2015-02-24 136 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正常工作。