忽略表单内单个输入的Angular.JS表单验证

时间:2015-06-04 09:13:15

标签: html angularjs forms

我有什么方法可以做到这一点?我有一个类似5输入的表单,但我想要其中一个,不受ngDirty或ngPrestine或其中任何一个的影响,无论如何我能做到这一点吗?如果您需要更多信息,请告诉我。

上下文的一些HTML:     

  <input id="name" ng-model="device.Name" type="text" class="form-control">

  <input id="description" ng-model="img.Description" type="text" class="form-control" />    

</form>

由外人完成的CSS:

input.ng-dirty
{
  &.ng-invalid
  {
    border: 1px solid $error;
    background-color: transparentize($error, 0.95);
  }
  &.ng-valid
  {
    border: 1px solid $success;
    background-color: transparentize($success, 0.95);
  }
}

input.ng-pristine
{
  &.ng-invalid
  {
    border: 1px solid $required;
    background-color: transparentize($required, 0.95);
  } 
}

现在基本上,这表示任何输入元素处于脏或声望状态时作为那些颜色,我怎么能忽略单个字段?让我们说'名字'字段?

1 个答案:

答案 0 :(得分:1)

您可以通过添加一个禁用在使用它的输入字段上设置样式的css类来实现这一目的。

:not() CSS伪类非常适合这种用途。

在CSS中

...

input.ng-pristine:not(.no-change) {
    ...
}

...

样式仅适用于没有类no-change的元素。

在HTML中

<input id="name" ng-model="device.Name" type="text" class="form-control no-change">
<input id="description" ng-model="img.Description" type="text" class="form-control" />