禁用响应式表单中的输入字段
禁用响应式表单中的输入字段
我已经尝试了遵循其他答案的示例,但我没有成功!
我创建了一个反应式表单(即,动态表单),并想在任何时候禁用某些字段。我的表单代码:
this.form = this._fb.group({ name: ['', Validators.required], options: this._fb.array([]) }); const control = this.form.controls['options']; control.push(this._fb.group({ value: [''] }));
我的HTML代码:
我为了简化代码,想禁用选择类型的字段。我尝试了以下方法:
form = new FormGroup({ first: new FormControl({value: '', disabled: true}, Validators.required), });
但不起作用!有没有人有建议?
admin 更改状态以发布 2023年5月24日
注意
如果你正在使用一个带有条件变量来创建一个表单,并试图稍后更改它,那么它将不会起作用,即表单不会变化。
例如
this.isDisabled = true; this.cardForm = this.fb.group({ number: {value: null, disabled: this.isDisabled}, });
如果你更改了变量
this.isDisabled = false;
表单将没有变化。你应该使用
this.cardForm.get('number').disable();
另外,你应该使用patchValue方法来更改值:
this.cardForm.patchValue({ number: '1703' });