angular - 从表单控件 Angular 6 中删除验证器

标签 angular angular-forms angular-reactive-forms angular-formbuilder

我有一个表单,其中包含许多表单控件和一些控件的验证器,例如:

title = new FormControl("", Validators.compose([
    Validators.required
]));
description = new FormControl("", [
    Validators.required,
    Validators.minLength(1),
    Validators.maxLength(2000)
]);

如何添加不验证控件的另存为草稿按钮?或者删除它们?

我已经尝试了很多例子,例如:

saveDraft() {
   this.addProjectForm.controls.title.clearValidators();
   this.addProjectForm.controls.title.setErrors(null);
   this.addProjectForm.controls.title.setValidators(null);
}

saveDraft() {
   this.addProjectForm.controls['title'].clearValidators();
   this.addProjectForm.controls['title'].setErrors(null);
   this.addProjectForm.controls['title'].setValidators(null);
}

但没有任何作用..

最佳答案

试试这个:

this.addProjectForm.get('title').setValidators([]); // or clearValidators()
this.addProjectForm.get('title').updateValueAndValidity();

如果你想添加一个验证器然后追加验证器数组:

this.addProjectForm.get('title').setValidators([Validators.required]);
this.addProjectForm.get('title').updateValueAndValidity();

注意:你必须在每次更改后使用 updateValueAndValidity()

关于angular - 从表单控件 Angular 6 中删除验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53507355/

相关文章:

angular - Froala 编辑器 formControl 在第二次加载后不更新

javascript - 如何以 react 形式传递单选按钮的值?

javascript - 为什么使用 Rxjs 发出此更改

angular - 无法使用 Angular 启动 Storybook

angular - 如何使用formgroup以 Angular 2的方法post提交表单

angular - 如何将表单控件值传递给 Angular 5 react 表单中的自定义验证器函数的参数

javascript - 重构链式 RxJs 订阅

javascript - Angular 2从url获取json数据

选择的 Angular 4 在 *ngFor 选项中不起作用

Angular 4 填充表单并设置为未触及