JavaScript — HTML / PHP: Как сделать проверку даты до / после отправки. Проверьте, если выбранный день +/- 5 дней от текущего дня

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

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

Я хотел бы ограничить это только 5 днями до текущего дня и 5 днями после.

Таким образом, в форме ниже пользователь может выбрать другую дату, чем текущий день.
Я хотел бы проверить, если это +/- 5 дней от текущего дня, а затем перейти на страницу, где они могут ввести время, и если это больше, чем +/- 5 дней, то отобразить сообщение об ошибке.

    <tr>
<td>
<div>Calendar:</div>
</td>
<td>
<form action = "enterTimeDD.php" method = "post" id="calendarID">
<input type='text' class='datepicker' id='currentDay' name='currentDay' autocomplete='off'>
<input type='submit' value='Go to' id='greensubmit'>
</form>
</td>
</tr>

Каков наилучший способ добиться такого поведения?

Изменить 1:
Я нашел то, что может быть в правильном направлении на этой странице: Источник

Я изменил код следующим образом:

            <script>
const calendarID = document.getElementById('calendarID');
const currentDay = document.getElementById('currentDay');
const greensubmit = document.getElementById('greensubmit');

var minDate=new Date(), maxDate = new Date();

minDate.setDate(minDate.getDate()-5);
maxDate.setDate(maxDate.getDate()+5);

if (currentDay > minDate && currentDay < maxDate ){
greensubmit.disabled = false;
}
else{
greensubmit.disabled = true;
}

greensubmit.addEventListener('click', function (event) {
calendarID.submit();
});

</script>

Но теперь кнопка отправки не работает, даже если дата находится в диапазоне +/- 5 дней. Какие-либо предложения?

Изменить 2:
Я попытался жестко закодировать дату, чтобы проверить, работает ли код.

Сравнение var testDate = new Date("2018-11-01"); с minDate и maxDate я не могу изменить на любую дату. И это правильно, так как дата находится за пределами диапазона +/- 5.

Сравнение var testDate = new Date("2018-11-08"); с minDate и maxDate я могу изменить на любую дату. И это правильно, так как дата находится в диапазоне +/- 5.

Так что кусок кода из Edit 1 работает.

Проблема, которую я вижу в том, что const currentDay = document.getElementById('currentDay'); не получает дату, которую я выбираю с помощью средства выбора даты, чтобы сравнить это с minDate и maxDate.
И я не понимаю почему. Я застрял в этой точке.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector