エラーメッセージの境界線の色を変更しようとしています。これは私のHTMLコードです
<div class="form-group">
<label>Name:</label>
<div class="wpr">
<div class="wpr__icon">
<i class="fa fa-user"></i>
</div>
<input #name="ngModel" id="name" name="name" type="text" class="form-control text-line" [(ngModel)]="PersonInfo.name"
pattern="[a-zA-Z0-9\s]+" required>
</div>
<ul class="alert-error" *ngIf="name.touched && name.errors">
<li *ngIf="name.errors.required"> Name is required. </li>
<li *ngIf="name.errors.pattern">Invalid name.</li>
</ul>
</div>
現在、エラーメッセージが表示されていますが、テキストボックスの境界線の色を赤に変更したいと思います。どうやってするか。
無効な場合、ngClass
ディレクティブを使用して、cssクラスを入力フィールドに追加できます。
<input #name="ngModel" id="name" name="name" type="text" class="form-control text-line"
[ngClass]="{'red-border-class': name.errors}" [(ngModel)]="PersonInfo.name" pattern="[a-zA-Z0-9\s]+" required>
あなたがCSSを書く助けを必要としないことを願っています。 :-)
別の解決策があります。
input.ng-invalid.ng-touched {
border: 1px solid red;
}
入力フィールドを調べると、利用できる要素にAngularが動的に付加されているcssクラスを見ることができます。
cssファイルの.alert-errorクラスを見つけてborder propertyを追加します。
.alert-error{
...
border:1px solid red;
color:red;
}
さまざまな方法を実現できますが、私は個人的に次の方法を好みました。
[〜#〜] html [〜#〜]
<form [ngClass]="{ 'form-submit': isSubmit}" (ngSubmit)="onSubmit()" name="forgotPasswordForm" [formGroup]="forgotPasswordForm">
<input name="email" type="email" class="form-control" id="email" placeholder="Email" formControlName="email">
<div class="invalid-feedback form-error" *ngIf="...">
.......
</div>
</form>
CSS:
.form-group input.ng-invalid.ng-touched,
.form-group input.ng-invalid:focus,
.form-group select.ng-invalid.ng-touched,
.form-group textarea.ng-invalid.ng-touched,
.form-submit input.ng-invalid,
.form-submit select.ng-invalid,
.form-submit textarea.ng-invalid
{
border-color: #ff4c6a;
}
.invalid-feedback.form-error {
display: block;
}
Ng-ifは動作しないため、ng-ifの代わりにこれを追加します
無効な名前。
あとは、次のクラスを追加するだけです
.has-error {
border-bottom: 2px solid red;
}
またはあなたが望むものは何でも魔法を見る!
多くの検証ルールで遊ぶフィドル http://jsfiddle.net/rohitkumar93/8rcbz0xt/2/