Angular2: изменить цвет границы для ошибки при проверке формы
Попытка изменить цвет границы для сообщения об ошибке. это мой 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>
В настоящее время появляются сообщения об ошибках, но я хочу изменить пограничный цвет текстового поля на красный. Как это сделать.
Ответы
Ответ 1
Вы можете использовать директиву 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. :-)
Ответ 2
Вот еще одно решение.
input.ng-invalid.ng-touched {
border: 1px solid red;
}
Если вы проверите свое поле ввода, вы увидите некоторые классы css, которые Angular динамически присоединяет к вашему элементу, который вы можете использовать.
Ответ 3
Просто найдите класс.alert-error в файле css и добавьте свойство border.
.alert-error{
...
border:1px solid red;
color:red;
}
Ответ 4
Добавьте это вместо ng-if, потому что это не ng-if работает
Неверное имя.
Теперь все, что вам нужно сделать, это добавить класс, называемый
.has-error {
border-bottom: 2px solid red;
}
или что хотите, и увидеть волшебство!
Вот скрипка для игры со многими правилами проверки http://jsfiddle.net/rohitkumar93/8rcbz0xt/2/
Ответ 5
Мы можем достичь разных путей, но лично я предпочел следующий путь.
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;
}