Я этого не сделал, поэтому я не уверен, что это сработает. Но вы могли бы хотя бы попробовать и посмотреть.
Я бы, вероятно, посмотрел на настройку обратного вызова viewDisplay
. Он получает View Object, который содержит имущество start
, среди прочих. Вы можете использовать свойства объекта «Вид» для проверки того, какой вид и дату, на которую смотрит пользователь, а затем выполнить действия на его основе.
Я не уверен, что fullcalendar работает таким образом, но некоторые плагины прекратят действие, если вы ответите return false
. Таким образом, вы можете проверить дату start
и, если она находится вне диапазона допустимых месяцев, то return false
, чтобы прервать действие.
Если это не сработает, внутри viewDisplay
вы можете снова проверить дату start
. Если следующий месяц или предыдущий месяц выходят за допустимые пределы, вы можете использовать селектора jQuery, чтобы захватить кнопки prev/next и отключить их. Таким образом, пользователь не сможет переключиться на месяц вне диапазона.
Кроме того, если пользователь находится за пределами диапазона, вы можете немедленно отправить команду gotoDate
, чтобы перейти к допустимому месяцу.
$('#calendar').fullCalendar({
viewDisplay: function(view) {
// maybe return false aborts action?
if (view.start > lastDayOfNextMonth) {
return false;
}
// or disable next button if this is last valid month
if (view.end + oneDay >= lastValidDate) {
$("#calendar #fc-button-next").attr("disabled","disabled");
}
// or gotoDate if view.start is out of range
if (view.start > lastValidDate) {
// gotoDate
}
}
});
Существует множество способов сделать логику и математику даты там, но я думаю, что вы можете что-то сделать таким образом.
дает эту ошибку неперехваченным TypeError: view.start.getMonth не является функцией – Newbie