Минимальное значение даты ввода должно быть сегодня - PullRequest
1 голос
/ 23 марта 2020

У меня есть ввод типа date, и мне нужно, чтобы было невозможно выбрать дату, которая не от сегодняшнего дня, я пробовал это так, но у меня не очень получилось:

HTML:

<input [(ngModel)]="atv.dataini" type="date" class="form-control" #one min="{{this.today}}">

TYPESCRIPT:

today = this.dNow.getFullYear() + '-0' + (this.dNow.getMonth() + 1) + '-0' + this.dNow.getDate();

Я также пробовал это так:

HTML:

<input [(ngModel)]="atv.dataini" type="date" class="form-control" #one min="{{this.tdNow}}">

TYPESCRIPT:

dNow = this.formatDate(new Date());

formatDate(date) {
    let result = date.split('-').reverse().join('/');
    return result
}

Ответы [ 2 ]

2 голосов
/ 23 марта 2020

Итак, я имею в виду, что у вас есть несколько способов сделать это, но я думаю, что самый правильный из них - позволить пользователю вводить данные, сравнивать их с дневным светом и показывать сообщение.

Чтобы получить день на JS:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now

Я думаю, что это тоже может помочь:

Сравните две даты с JavaScript

0 голосов
/ 23 марта 2020

Полное решение будет выглядеть следующим образом:

. html

<input #dateInput type="date" [(ngModel)]="myDate"> 

.ts

@ViewChild("dateInput", { static: false }) input: ElementRef;
myDate: string;

ngAfterViewInit(): void {
  const keyUpObservable = fromEvent(this.input.nativeElement, "change");
  keyUpObservable
    .pipe(
      map((event: any) => event.target.value),
      debounceTime(2000),
      distinctUntilChanged()
    )
    .subscribe((date: string) => {
      const today = new Date();
      if (new Date(date.toString()) < today) {
        this.myDate = today.toISOString().split("T")[0];
      } else {
        this.myDate = date;
      }
    });
}
  • Здесь ссылка поля ввода получено, и наблюдаемое создается на событии change (нажатием клавиши или щелчком).
  • Далее debounceTime используется для выдачи этого значения, когда пользователь перестал печатать через 2 с. (Вы можете редактировать задержку в зависимости от ваших предпочтений)
  • distinctUntilChanged предотвращает выдачу наблюдаемого, если нет изменений между текущим и предыдущим входными значениями.

Рабочий стекблиц .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...