当标记为必需的控件为空时,为什么我的 Angular FormGroup 有效?
Why is my Angular FormGroup Valid when a control that is marked as required is empty?
我正在尝试为 select.
设置基本的表单验证
在我的构造函数中,我有以下 FormGroup
this.formSubmission = new FormGroup(
{
triggers: new FormControl(['', [ Validators.required]])
}
)
我在屏幕上有一个按钮来测试 FormGroup
的有效性,它总是返回有效,即使没有 selected 的“触发器”。
单击时执行以下代码:
console.log('FormGroup Status: ' + this.formSubmission.status)
这将 return 有效。
可在此处找到其中的 HTML 部分:
<div [formGroup]="formSubmission">
<mat-form-field appearance="fill">
<mat-label>Triggers</mat-label>
<mat-select
formControlName="triggers" multiple
>
<mat-option *ngFor="let trigger of triggersList" [value]="trigger.TRIGGER_NAME">{{trigger.TRIGGER_NAME}}</mat-option>
</mat-select>
</mat-form-field>
</div>
你定义的触发器有误。
triggers: new FormControl(['', [ Validators.required]])
将导致触发器:数组。
第一个参数是值,第二个是验证器、asyncValidators 或 options
您可能想做的是:
triggers: new FormControl('', [ Validators.required])
我正在尝试为 select.
设置基本的表单验证在我的构造函数中,我有以下 FormGroup
this.formSubmission = new FormGroup(
{
triggers: new FormControl(['', [ Validators.required]])
}
)
我在屏幕上有一个按钮来测试 FormGroup
的有效性,它总是返回有效,即使没有 selected 的“触发器”。
单击时执行以下代码:
console.log('FormGroup Status: ' + this.formSubmission.status)
这将 return 有效。
可在此处找到其中的 HTML 部分:
<div [formGroup]="formSubmission">
<mat-form-field appearance="fill">
<mat-label>Triggers</mat-label>
<mat-select
formControlName="triggers" multiple
>
<mat-option *ngFor="let trigger of triggersList" [value]="trigger.TRIGGER_NAME">{{trigger.TRIGGER_NAME}}</mat-option>
</mat-select>
</mat-form-field>
</div>
你定义的触发器有误。
triggers: new FormControl(['', [ Validators.required]])
将导致触发器:数组。 第一个参数是值,第二个是验证器、asyncValidators 或 options
您可能想做的是:
triggers: new FormControl('', [ Validators.required])