0

我有以下表单设置:

this.form = new FormGroup({
  ...
  year: new FormControl("", validateDateMethod(year, month, day)),
  month: new FormControl("", validateDateMethod(year, month, day)),
  day: new FormControl("", validateDateMethod(year, month, day))
});

我想创建一个自定义验证器来验证基于 3 个字段的日期。

是否可以基于多个表单值创建验证器?

普通海关验证器只接受当前控制和任何参数值。

谢谢

4

1 回答 1

1

您可以将所有三个日期分组到一个表单组并向其添加验证器。然后,您可以验证所有三个字段。

 this.form = new FormGroup({
      ...
      dateGroup:this.formBuilder.group({
      year: new FormControl(""),
      month: new FormControl(""),
      day: new FormControl("")
    },{validator:validateDates}) 
  });

    validateDates(c:AbstractControl){
    const year = c.get('year');
    const month = c.get('month');
    const day = c.get('day');
    ....
    }
于 2019-11-12T09:45:32.907 回答