我有一个使用 FormGroup 的表单。
我想在一些包含数据的控件中添加验证器(在用户输入数据并点击“检查”按钮之后)。
我试过了:
this.fg.controls['someKey'].setValidators([Validators.required]);
和
this.fg.controls['someKey'].updateValueAndValidity();
但它会清除控件中的数据。
有什么想法吗?
答案 0 :(得分:0)
你可以设置这样的验证器。试试这个
<强> 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