У меня есть следующий код:
constructor() {
this.feedbackForm = new FormGroup({
suggestedAScore: new FormControl('', [Validators.pattern(/^[0-9]+$/),Validators.required, Validators.maxLength(5), Validators.minLength(5)]),
minScore: new FormControl('', [Validators.pattern(/^[0-9]+$/),Validators.required,Validators.minLength(1),Validators.maxLength(1)]),
maxScore: new FormControl('', [Validators.pattern(/^[0-9]+$/),Validators.required,Validators.minLength(1),Validators.maxLength(1)])
});
this.feedbackForm.setValidators(this.minMaxValidator());
}
public minMaxValidator() : ValidatorFn{
return (group: FormGroup): ValidationErrors => {
const min = group.controls['minScore'];
const max = group.controls['maxScore'];
var changedValue;
if (min.value && max.value) {
if (this.prevMinVal && (this.prevMinVal === min.value)) {
changedValue = max;
this.errorMessage = 'Max value should be greater than Min value';
} else {
changedValue = min;
this.errorMessage = 'Min value should be lesser than Max value';
}
this.prevMinVal = min.value;
if (min.value >= max.value) {
changedValue.setErrors({notEquivalent: true});
} else {
min.setErrors(null);
max.setErrors(null);
}
};
// this.isFeedbackFormValid();
return;
}
};
Здесь с этим кодом, когда я ввожу максимальное значение меньше минимального значения, ошибка отображается при мин, а не при максимуме. Мой вопрос заключается в том, как выделить вход, который введено неправильно. Может кто-нибудь, пожалуйста, предложите мне помощь. Спасибо.