我有这样的react 形式
this.form = this.formBuilder.group({
...
email: [],
receiveNewsletter: [],
...
})
我希望所有字段都是可选的,除非用户选中receiveNewsletter
,否则邮箱字段应该是必需的.我该怎么做?
我有这样的react 形式
this.form = this.formBuilder.group({
...
email: [],
receiveNewsletter: [],
...
})
我希望所有字段都是可选的,除非用户选中receiveNewsletter
,否则邮箱字段应该是必需的.我该怎么做?
您必须观察复选框的值,并根据值receiveNewsletter
添加或删除所需的验证器
this.form.controls.receiveNewsletter.valueChanges.subscribe(value => {
if(value){
this.form.controls.email.addValidators(Validator.required);
} else {
this.form.controls.email.removeValidators(Validator.required);
}
this.form.controls.email.updateValueAndValidity(); //remember to add this to update the form control state
})