#javascript #html
Вопрос:
Я пытаюсь установить минимальную и максимальную дату для своих входных данных даты, настройка min работает, но по какой-то причине максимальная дата не работает. В чем здесь проблема? Я также пытался использовать getDate() 90 вместо getMonth() 3.
мои вклады:
let today = new Date().toISOString().split('T')[0]; let date3m = new Date(new Date().setDate(new Date().getMonth() 3)); document.getElementsByName("start")[0].setAttribute('min', today); document.getElementsByName("start")[0].setAttribute('max', date3m)
lt;div class="calendar"gt; lt;divgt; lt;label for="start"gt;Start Dato:lt;/labelgt; lt;input type="date" id="start" name="start" requiredgt; lt;/divgt; lt;divgt; lt;label for="end"gt;Slutt Dato:lt;/labelgt; lt;input type="date" id="end" name="end" requiredgt; lt;/divgt; lt;/divgt;
Комментарии:
1. Какое отношение к этому имеет jQuery? Вы используете стандартные функции DOM.
Ответ №1:
min
и max
должны быть в формате YYYY-MM-DD
. Вы настраиваетесь max
на что-то вроде Sat Nov 13 2021 18:14:51 GMT-0500 (Eastern Standard Time)
, что не работает.
Используйте toISOString()
так же, как вы это делаете для today
.
И setDate()
так и должно быть setMonth()
.
let today = new Date().toISOString().split('T')[0]; let date3m = new Date(); date3m.setMonth(date3m.getMonth() 3); date3m = date3m.toISOString().split('T')[0]; document.getElementsByName("start")[0].setAttribute('min', today); document.getElementsByName("start")[0].setAttribute('max', date3m)
lt;div class="calendar"gt; lt;divgt; lt;label for="start"gt;Start Dato:lt;/labelgt; lt;input type="date" id="start" name="start" requiredgt; lt;/divgt; lt;divgt; lt;label for="end"gt;Slutt Dato:lt;/labelgt; lt;input type="date" id="end" name="end" requiredgt; lt;/divgt; lt;/divgt;
Ответ №2:
Вы забыли удалить время из date3m
, прежде чем установить max
для него атрибут ввода.
let today = new Date().toISOString().split('T')[0]; let date3m = new Date(new Date().setDate(new Date().getMonth() 3)).toISOString().split('T')[0]; document.getElementsByName("start")[0].setAttribute('min', today); document.getElementsByName("start")[0].setAttribute('max', date3m)
lt;script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"gt; lt;/scriptgt; lt;div class="calendar"gt; lt;divgt; lt;label for="start"gt;Start Dato:lt;/labelgt; lt;input type="date" id="start" name="start" requiredgt; lt;/divgt; lt;divgt; lt;label for="end"gt;Slutt Dato:lt;/labelgt; lt;input type="date" id="end" name="end" requiredgt; lt;/divgt; lt;/divgt;
Комментарии:
1. @Barmar Спасибо за уведомление. Я обновил свой ответ.
2.
setDate
должно бытьsetMonth