无法获取反应形式的只读文本框值
Unable to get the read only text box value on reactive form
我有一个 read-only text input (3)
如下所示。
.ts
wokeUpTime: number = 0;
constructor(public formBuilder: FormBuilder, ) {
this.sleepingDetailsForm = formBuilder.group({
wokeUpTime: [0],
});
}
save(data): void {
if (this.sleepingDetailsForm.valid) {
//save
}
}
.html
<form [formGroup]="sleepingDetailsForm" (submit)="save(sleepingDetailsForm)" novalidate>
<h3 color="primary">Woke up time?</h3>
<div class="wokeuptime">
<button type="button" (click)="decreaseWokeupTime()">-</button>
<input type="text" [readonly]="true" value={{wokeUpTime}} formControlName="wokeUpTime">
<button type="button" (click)="increaseWokeupTime()">+</button>
</div>
<button ion-button block type="submit" [disabled]="!sleepingDetailsForm.valid">Save</button>
这里的问题是,我无法通过 wokeUpTime
获取只读文本输入的值。这里我使用的是反应形式 approach.I 知道这是因为我不是在文本中输入任何内容 box.But 解决方法是什么?我需要通过表单变量 this.sleepingDetailsForm
获取值。我该怎么做?我知道我可以直接从 save()
方法中的 this.wokeUpTime
获取值,因为它是一个全局变量。但是我怎样才能从 form
本身得到它呢?
如果您使用的是响应式表单,则不应尝试绑定 value
。您可以使用 this.sleepingDetailsForm.value
从代码中获取表单组的当前状态 - 因此,获取字段的值就像 this.sleepingDetailsForm.value.wokeUpTime
.
一样简单
编辑: 或者更好,如果你正在使用 wokeUpTime
,你可以使用单向绑定,表单控件将获得值集:
<input type="text" [ngModel]="wokeUpTime" [readonly]="true"
formControlName="wokeUpTime">
原创 POST:
无论增加还是减少,您都需要在执行此操作时将值设置到表单控件。
所以应该是:
this.sleepingDetailsForm.get('wokeUpTime').patchValue(...the new value here...)
那么您的值将成为表单值的一部分。
我有一个 read-only text input (3)
如下所示。
.ts
wokeUpTime: number = 0;
constructor(public formBuilder: FormBuilder, ) {
this.sleepingDetailsForm = formBuilder.group({
wokeUpTime: [0],
});
}
save(data): void {
if (this.sleepingDetailsForm.valid) {
//save
}
}
.html
<form [formGroup]="sleepingDetailsForm" (submit)="save(sleepingDetailsForm)" novalidate>
<h3 color="primary">Woke up time?</h3>
<div class="wokeuptime">
<button type="button" (click)="decreaseWokeupTime()">-</button>
<input type="text" [readonly]="true" value={{wokeUpTime}} formControlName="wokeUpTime">
<button type="button" (click)="increaseWokeupTime()">+</button>
</div>
<button ion-button block type="submit" [disabled]="!sleepingDetailsForm.valid">Save</button>
这里的问题是,我无法通过 wokeUpTime
获取只读文本输入的值。这里我使用的是反应形式 approach.I 知道这是因为我不是在文本中输入任何内容 box.But 解决方法是什么?我需要通过表单变量 this.sleepingDetailsForm
获取值。我该怎么做?我知道我可以直接从 save()
方法中的 this.wokeUpTime
获取值,因为它是一个全局变量。但是我怎样才能从 form
本身得到它呢?
如果您使用的是响应式表单,则不应尝试绑定 value
。您可以使用 this.sleepingDetailsForm.value
从代码中获取表单组的当前状态 - 因此,获取字段的值就像 this.sleepingDetailsForm.value.wokeUpTime
.
编辑: 或者更好,如果你正在使用 wokeUpTime
,你可以使用单向绑定,表单控件将获得值集:
<input type="text" [ngModel]="wokeUpTime" [readonly]="true"
formControlName="wokeUpTime">
原创 POST:
无论增加还是减少,您都需要在执行此操作时将值设置到表单控件。
所以应该是:
this.sleepingDetailsForm.get('wokeUpTime').patchValue(...the new value here...)
那么您的值将成为表单值的一部分。