Запустите и установите ошибки проверки для одного поля на основе значения другого поля в angular построитель / группа форм - PullRequest
0 голосов
/ 30 января 2020

Я хочу, чтобы средство проверки пользовательских функций запускалось при размытии как StartDate, так и EndDate

component.ts

Createform(){
this.studentForm = formBuilder.group({
      StartDate: ['', Validators.required, customFunction(), updateOn: "blur" ],
      EndDate: ['', null,customFunction(), updateOn: "blur" ],

}

Пользовательская функция

customFunction(){
 if (EndDate <= startDate) {
          return of({ invalidDate: true });
        } 
      }  
      return of(null);
    };
}

Она устанавливает CreateForm .controls ['StartDate']. errors? .invalidDate в true при запуске в StartDate. Можно ли установить это invalidDate для EndDate, даже если я запускаю функцию в StartDate?

Пользовательская функция запускается правильно, но когда она запускается в StartDate, она устанавливает массив ошибок в дату начала, но я хочу, чтобы ошибка была установить на EndDate, это возможно?

1 Ответ

1 голос
/ 30 января 2020

В вашей пользовательской функции вы можете использовать функцию setErrors для установки ошибки в другом поле

Пользовательская функция

customFunction(){
 if (EndDate <= startDate) {
         this.studentForm.form.controls['endDate'].setErrors({'invalidDate': true});;
        } 
      }  
      return of(null);
    };
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...