仅在填写一个时,如何验证无功输入字段?

时间:2019-07-23 14:25:39

标签: angular angular8

如何仅在填写一个无功输入字段时对其进行验证?

我的反应形式是:

this.form = this.fb.group({
      code: [null, [Validators.required, Validators.pattern('^[a-zA-Z]+$')]],
      dateFrom: [null, []],
      dateTo: [null, []],
      uk: [null, []]
    });

仅当填写dateTo时,我才需要验证dateFrom

1 个答案:

答案 0 :(得分:2)

使用自定义验证程序:

在TS中:

checkFirstDate(group: FormGroup) {  
  let dateFrom = group.controls.dateFrom.value;
  return dateFrom ? null : { dateFromNotExist: true }     
}


this.form = this.fb.group({
      code: [null, [Validators.required, Validators.pattern('^[a-zA-Z]+$')]],
      dateFrom: [null, []],
      dateTo: [null, []],
      uk: [null, []]
    }, {validator: this.checkFirstDate });

以HTML

   <span class="text-danger" *ngIf="form.hasError('dateFromNotExist') && (form.get('dateTo').dirty || form.get('dateTo').touched)">
    Fill Date Form first
   </span>