В моем приложении Angular 7 я создал пользовательский валидатор, который должен проверять, больше или равно значение, введенное в элемент управления формы, 2. 2. 1001 *
Мой пользовательский валидатор:
static greaterThanOne(control: AbstractControl) {
const v = control.value;
if ( v >= 2) {
return null;
} else {
return { greaterThanOne: true };
}
}
Мой HTML
<div class="col-lg-2">
<label class="sr-only" for="dependency-section-2-3"> How many people are in the
household?</label>
<input
required
maxlength=2
numericOnly
formControlName="studentHouseHold"
name="studentHouseHold"
id="studentHouseHold"
class="form-check-input"
data-hint="yes"
type="text"
class="form-control col-4"
data-hint="yes"
value=""
>
<div *ngIf="sectionTwo.studentHouseHold.errors && sectionTwo.studentHouseHold.touched"
class="alert text-danger m-0 p-0 col-md-12">
<div
*ngIf="sectionTwo.studentHouseHold.touched && sectionTwo.studentHouseHold.invalid && sectionTwo.studentHouseHold.errors.greaterThanOne && sectionTwo.studentHouseHold.errors.earningsFormat && !sectionTwo.studentHouseHold.errors.required"
class="alert text-danger m-0 p-0 col-md-12">
Invalid entry.
</div>
<div *ngIf="sectionTwo.studentHouseHold.errors.required">This field is required.</div>
</div>
</div>
Некоторые вещи, на которые следует обратить внимание ... Я не могу изменить тип ввода с «текст» на «номер». Чтобы справиться с этим, я создал пользовательскую директиву «numericOnly», которая позволяет пользователю вводить только цифры. Мне просто нужно изменить пользовательский валидатор так, чтобы любое значение, которое вводит пользователь, должно быть больше или равно 2.
Я также пытался добавить валидатор угловых значений, Validator.min (2), к своему элементу управления формой. , но это не сработало.