仅当存在值时才验证 angular 表单字段中的最小数字

validate minimum number in an angular form field only if a value is presented

我正在用 angular material 和表单编写 angular 8 网络应用程序。

我用 FormBuilder 创建了一个 FormGroup 并向字段添加了验证。

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

我该如何实现?

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

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

谢谢!

由于您没有 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>