【问题标题】:Angular form always invalid角度形式总是无效
【发布时间】:2020-11-24 12:30:07
【问题描述】:

我有一个带有ngDatePicker 的输入和一个提交按钮,只要表单无效,该按钮就会被禁用。

发生的事情是表单始终无效!我打印了无效的表单属性,它是date 部分。

我不知道为什么它总是让我无效,即使我在选择日期后打印了表单值并且它有一个date 控件名称。

有人知道这个问题吗?

这是我构建表单的方式:

this.submitUserForm = formBuilder.group({
  email: [null, Validators.required],
  password: [null, Validators.required],
  firstName: [null, Validators.required],
  lastName: [null, Validators.required],
  date: [null, Validators.required],
  phoneNumber: [null, Validators.required],
  gender: [null, Validators.required],
  roles: [null, Validators.required]
});

这是我的 HTML:

<input class="form-control" placeholder="Date of birth" name="dp" ngbDatepicker
      #d_2="ngbDatepicker" formControlName="date" (click)="d_2.toggle()" [maxDate]="maxDateValue"
      onkeydown="return false" (dateSelect)="onEndDateChange($event)">

【问题讨论】:

  • 这似乎很可疑:[maxDate]="minDateValue"
  • 你为什么使用响应式表单和两种方式绑定在一起?
  • @vsfDawg 显然你是对的。不知道为什么,但即使选择了小于最大日期的日期,它似乎仍然无效。你知道为什么吗?
  • @abhaytripathi 你是对的,这是一个错误
  • @vsfDawg 请将您的评论作为答案

标签: angular typescript angular-reactive-forms


【解决方案1】:

这似乎很可疑:[maxDate]="minDateValue"

您似乎将 minDateValue 用作上限,这使得合理的输入显得不合理。

【讨论】:

    【解决方案2】:

    每当您的日期值更新时,请尝试调用updateValueAndValidity method,如下所示。

    this.submitUserForm .get(date).updateValueAndValidity();

    这将向所有订阅者发出更改并更新表单状态。

    【讨论】:

      猜你喜欢
      • 2020-08-25
      • 1970-01-01
      • 2020-06-29
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      相关资源
      最近更新 更多