在角度4触发验证时,控制标签会突出显示

时间:2017-12-01 07:18:34

标签: angular angular-reactive-forms

我正在我的角度4验证中实现验证,需要做一些调整。验证工作正常但可能需要更改消息的显示方式。当我单击表单上的保存按钮时,控件将在控件和控件边框下方显示一条消息,并以红色和控件标签突出显示。我不希望控件标签以红色突出显示。我能想到的一种方法是使用常规标签,但我无法使用标签。是(标签)推荐?有什么好处。 ?我如何使用(标签)但不突出显示标签

<form [formGroup]="newMovieForm" (ngSubmit)="save(newMovieForm.value, newMovieForm.valid)">
  <div class="col-sm-12">
    <div class="form-group col-sm-6">
      <div class="form-group" [ngClass]="{'has-error':!newMovieForm.controls['title'].valid && (saveClicked || newMovieForm.controls['title'].touched)}">
        <label for="movie-title" class="control-label">Title of Movie</label>
        <input type="text" class="form-control" id="movie-title" placeholder="Title of Movie" formControlName="title" maxlength="100">
        <!-- The hasError method will tell us if a particular error exists -->
        <div *ngIf="newMovieForm.controls['title'].hasError('required') && (saveClicked || newMovieForm.controls['title'].touched)" class="alert alert-danger">Title is required.</div>
      </div>
    </div>
</form>

1 个答案:

答案 0 :(得分:2)

这与使用for属性无关。您的标签以红色突出显示的原因是因为它已应用control-label类:

.has-error .control-label {
    color: #a94442;
}

您可以从标签中删除该类,以获得所需的结果。查看source code,此类仅影响标签颜色,除非在水平,内联或导航栏形式中使用。

如果您仍想使用control-label,则可以始终覆盖CSS以重置颜色,但在您的确切示例中这不是必需的。

This回答明确解释了for属性的使用,但正如我所说,这并不会影响标签的突出显示。