我正在角度2中创建一个反应形式,并使用材料角度2来输入;
我需要将输入设置为禁用,并在提交未锁定输入中的值时将要发送的值。我已经创建了输入并且已禁用正在运行。我的问题是,当我提交一个提交值时,它不会来。
我的代码
this.formVariacao = this._fb.group({
id:[p && p['id']],
codigoItem: [p && p['codigoItem'], Validators.required],
});
我的HTML
<md-input-container>
<input mdInput placeholder="Código da Variação" formControlName="codigoItem" name="codigoItem">
</md-input-container>
我按如下方式阻止输入
this.formVariacao.get('codigoItem').disable();
只有当我发送表格时,价值才会到来。 Alguémpode me ajudar?
正如您注意到Angular忽略了表单对象中的禁用表单控件。
这可以通过使用getRawValue()
轻松解决,(ngSubmit)="onSubmit(formVariacao)"
包括所有表单控件,禁用或不禁用。例如,在您的提交中,您传递表单(而不是表单值),如下所示:
getRawValue
然后你可以使用onSubmit(form) {
console.log(form.getRawValue())
}
:
/**
* A control is `disabled` when its `status === DISABLED`.
*
* Disabled controls are exempt from validation checks and
* are not included in the aggregate value of their ancestor
* controls.
*/
从代码文档:
disable()
因此,如果您只使用disabled
来使控件具有disable()
属性,请不要使用[attr.disbaled]="yourVariable"
,请使用<input [attr.disabled]="disabled" mdInput placeholder="Código da Variação" formControlName="codigoItem" name="codigoItem">
像这样 :
this.formVariacao.get('codigoItem').disable();
然后在你的打字稿中:
代替
private disabled = false;
this.disabled = true;
做这个 :
qazxswpoi