Angular 2 FormGroup добавить валидаторы для существующего контроля с данными
У меня есть форма, которая использует FormGroup.
Я хочу добавить валидатор к некоторым элементам управления, которые содержат данные (после того, как пользователь ввел данные и нажал кнопку "Проверить").
Я попробовал это:
this.fg.controls['someKey'].setValidators([Validators.required]);
а также
this.fg.controls['someKey'].updateValueAndValidity();
но он очищает данные от контроля.
Любая идея?
1 ответ
Вы можете установить валидаторы, как это. попробуй это
formBuilder
this.fg = this.formBuilder.group(
exampleGroup: this.formBuilder.group({
checkboxInput: [false],
textinput: [''],
}, {validator: this.requiredIfChecked}),
}
функция пользовательских валидаторов
requiredIfChecked(control: AbstractControl): void {
const input = control.get('textInput').value;
const inputCheckbox = control.get('checkboxInput').value;
control.get('textinput').setValidators([]);
if (inputCheckbox) {
if (input === '' || input === null) {
control.get('textInput').setValidators([Validators.required]);
}
}
}
также вы можете сделать это вторым способом увидеть DEMO