Мне не удалось воспроизвести ошибку вашего исходного вопроса (см. https://jsfiddle.net/px0djq8w/). Тем не менее, я думаю, что нашел решение для второй проблемы, о которой вы упоминали в комментариях.
Сначала добавьте minYear
и maxYear
к опциям инициализации DatePicker. Похоже, что код Datepicker не использует minDate
/ maxDate
для этого:
$(document).ready(function(){
$('.datepicker').datepicker({
// ...
minYear: 1970,
maxYear: 2010
});
});
Во-вторых, нам нужно исправить две вещи в библиотеке Materialize Datepicker, потому что, по моему мнению, две вещи отсутствуют :
- Уже существует класс
.is-disabled
для кнопок previous
и next
, добавленный к кнопке next
. Теперь проблема в том, что для кнопки previous
проверка, должна ли она быть отключена или нет, происходит слишком поздно (после объявления кнопки, ~ строка 9241). Вот так это должно выглядеть:
if (isMinYear && (month === 0 || opts.minMonth >= month)) {
prev = false;
}
var leftArrow = '<svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"/><path d="M0-.5h24v24H0z" fill="none"/></svg>';
html += "<button class=\"month-prev" + (prev ? '' : ' is-disabled') + "\" type=\"button\">" + leftArrow + "</button>";
Теперь существует правило CSS, которое сообщает браузеру, что делать с кнопкой,
.is-disabled
. Вам необходимо добавить это правило после импорта CSS библиотеки:
button.is-disabled {
visibility: hidden; // hide button
pointer-events: none; // disable clicks
}
Ссылка на выпуск GitHub: https://github.com/Dogfalo/materialize/issues/6541