首页 > 解决方案 > 仅在存在值时验证角度表单字段中的最小数字

问题描述

我正在编写一个带有角度材料和表单的 Angular 8 Web 应用程序。

我创建了一个FormGroupwithFormBuilder并向字段添加了验证。

我有一个字段Validators.min(0)。问题是这个字段不是强制性的,所以我想验证该值是否最小为零,只有当有一个值开始时。

我如何做到这一点?

啊..好的,这就是我构建表单的方式

  this.queryForm = this.formBuilder.group({
            ...
            durationLongerThenInSec: ['', Validators.min(0)],
        });
    }

谢谢!

标签: angularangular-formsangular8

解决方案


由于您没有Validators.required所需的验证,因此不会将其应用于您的表单控件。您应该尝试添加Validators.min(0)到表单控件,它将验证它是否脏并满足最小值规则:

this.queryForm = this.formBuilder.group({
            ...
            durationLongerThenInSec: ['', [Validators.min(0)]],
        });
    }

还要确保您在模板上显示错误以处理并在durationLongerThenInSec.errors.min可用时显示错误消息:

<p *ngIf="durationLongerThenInSec.errors?.min">error message</p>

推荐阅读