我有一个使用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]);
}
}
}
你也可以做第二种方式,看看演示