如何在 Angular 中的第一次更改时触发表单输入验证

Fra*_*rzi 5 forms angular-validation angular angular-reactive-forms angular-forms

在我的 Angular 5 应用程序中,我想覆盖一些表单输入的默认验证行为。特别是,我想在用户插入内容后立即触发字段验证。

当前默认行为如下。例如,假设您有一个仅允许整数的验证器。

最初该字段是原始且空的:

在此处输入图片说明

然后用户聚焦输入并输入一些数据:

在此处输入图片说明

尽管插入的值无效(因为它不是整数),但尚未触发验证。它会在用户离开焦点时立即触发(例如按下 TAB 或聚焦另一个输入):

在此处输入图片说明

从现在开始,每次更改都会触发验证。

因此,如果用户现在返回该字段并插入一个有效值,验证器将立即完成其工作:

在此处输入图片说明

在此处输入图片说明

我想要的是让验证器在插入一些无效数据后立即将字段标记为无效,即使用户第一次插入数据并且从未离开过该字段

nir*_*aft -1

我认为如果您在组件中创建表单时附加验证器,效果会很好。

前任:

this.myReactiveForm  = new FormGroup({
  'name': new FormControl(this.user.name, [
    Validators.required,
    Validators.minLength(4)
  ]),
Run Code Online (Sandbox Code Playgroud)

一旦用户名长度超过 4 个字符,您就会看到该消息。