Почему я получаю ошибку проверки при попытке отключить прошлые даты в DatePicker? - PullRequest
0 голосов
/ 01 апреля 2019

У меня есть реактивная форма , которая использует ng-bootstrap's datepicker для необязательного поля даты, и я пытаюсь отключить прошлые даты, установив minDate для текущей даты.

<div class="input-group">
  <input class="form-control" [minDate]="ngdate" placeholder="yyyy-mm-dd" name="dp" formControlName="startDate" ngbDatepicker #d="ngbDatepicker">
  <div class="input-group-append">
    <button class="btn btn-outline-secondary calendar fa fa-calendar" (click)="d.toggle()" type="button"></button>
  </div>
</div>
ngdate: NgbDateStruct = {
    year: new Date().getFullYear(),
    month: new Date().getMonth() + 1,
    day: new Date().getDate()
};

this.registerForm = this.formBuilder.group({
    startDate: ['']
});

Когда я ввожу дату, это работает правильно, и все даты до сегодняшнего дня правильно отключены.Проблема в том, что когда я отправляю форму без ввода даты, она недействительна со статусом errors.ngbdate.

Я думаю, это происходит потому, что мое поле даты начинается пустым (потому что это реактивная форма) и не инициализируется.

Как отключить прошлые даты, не допуская появления этой ошибки проверки, если пользователь не вводит никакую дату?

1 Ответ

0 голосов
/ 08 апреля 2019

Согласно г-н. Комментарий Джея , это можно решить, изменив startDate: [''] на startDate: null.

...