form.valueChanges不会为禁用的控件发出值

时间:2017-12-27 13:17:58

标签: angular angular-reactive-forms

我有一个Angular Reactive表单。我订阅了它的值更改,并将对父组件发出更改。某些控件可能会被用户禁用。问题是,在发出表单valueChanges时,缺少来自禁用控件的值。我已经设置了基本example

选中该复选框并禁用电子邮件输入时,不会记录任何表单控件值。但我想获得所有表格价值。

2 个答案:

答案 0 :(得分:6)

使用FormGroup的getRawValue()来包含控制值,而不管启用/禁用状态。

More information in the API documentation

this.myForm.valueChanges.subscribe(() => {
    this.formValues =  JSON.stringify(this.myForm.getRawValue());
});

Here is the forked example

答案 1 :(得分:0)

忽略禁用输入的值(尝试提交带有禁用输入的表单:它不会被发布)。

您可以将其更改为“只读”

<input formControlName="email" [readonly]="cb.checked">
<input #cb type="checkbox" formControlName="toggleEmail">

Updated example