我有以下表单组。
this.rForm = fb.group({
'categoryName': [null, Validators.required],
'categoryImage': [null, Validators.required],
'mainCategoryId': [null, Validators.required],
'subCategoryName': [null, Validators.required]
});
“mainCategoryId”指的是下拉列表。当我在该drowpdown中更改值时,根据该值,我想保留或删除“subCategoryName”的验证器。然后我在ngOnInit()中使用下面的代码。
this.rForm.get('mainCategoryId').valueChanges.subscribe(
(mainCategoryId) => {
if(!this.isSub){
this.rForm.get('subCategoryName').clearValidators();
this.rForm.get('subCategoryName').updateValueAndValidity;
}
}
);
它在IF语句中,但它不会删除验证器。仍然需要检查。我究竟做错了什么?我只想删除所需的验证。
答案 0 :(得分:1)
试试这个
this.rForm.controls['subCategoryName'].clearValidators();
或者您可以使用setvalidators并将其设置为null
this.rForm.controls['subCategoryName'].setValidators(null);