angular 2 表单组添加验证器以存在数据控制



我有一个使用FormGroup的表单。

我想将验证器添加到一些包含数据的控件中(在用户输入数据并单击"检查"按钮之后(。

我试过这个:

this.fg.controls['someKey'].setValidators([Validators.required]);

this.fg.controls['someKey'].updateValueAndValidity();

但它会清除控件中的数据。

知道吗?

你可以设置这样的验证器。试试这个

表单生成器

 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]);
                }
            }
        }

你也可以做第二种方式,看看演示

最新更新