即使setValidators设置为required,即使原始状态下,角反应形式输入也有效

Angular reactive forms input is valid if pristine even if setValidators set to required

我需要以编程方式更改Angular反应形式中输入的验证器。

所以我初始化表格:

1
2
3
...
limitNumber: [{ value: null, disabled: (this.id ? true : false) }]
...

然后,我启用输入并更改所需的验证器:

1
2
this.newEventForm.get('limitNumber').enable();
this.newEventForm.get('limitNumber').setValidators(Validators.required);

在此之后,只要输入保持原始状态,输入状态就是VALID。如果我编辑输入值并擦除,则它变为"无效"。

我的问题是,即使将原始验证器设置为required,我也要立即使输入无效。

我能怎么做 ?

*****编辑*****

我的目标是能够有条件地进行输入。
假设用户创建了一个事件。在新的事件表单中,它可以选择设置最大参与者数。
如果用户切换输入(让我们将其称为" isLimited"),那么我需要一个新的输入来输入此数字限制,该数字限制将被启用(让我们将其称为" limitNumber"输入),因此必须填写。

因此,我的最终目标是仅在将" isLimited"输入切换为true时,才使此输入为"必需"


我只需要使用以下代码来检查有效性:

1
this.newEventForm.get('limitNumber').updateValueAndValidity();