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

Другие вопросы по тегам