No he hecho esto, así que no estoy seguro de que esto funcione. Pero al menos podrías intentar y ver.
Probablemente veré la personalización de la devolución de llamada viewDisplay
. Recibe un View Object que contiene una propiedad start
, entre otros. Puede usar las propiedades del objeto Ver para probar qué vista y fecha está mirando el usuario y luego realizar acciones basadas en él.
No estoy seguro de si fullcalendar funciona de esta manera, pero algunos complementos anularán una acción si return false
de una devolución de llamada. Por lo tanto, puede verificar la fecha start
y si está fuera de su rango de meses aceptables, entonces return false
para cancelar la acción.
Si eso no funciona, dentro de viewDisplay
podría verificar nuevamente la fecha start
. Si el mes siguiente o el mes anterior están fuera de rango, puede usar los selectores jQuery para tomar los botones prev/next y deshabilitarlos. De esta forma, el usuario no podrá cambiar a un mes fuera de rango.
Además, si el usuario está en un mes fuera de rango, puede emitir inmediatamente un comando gotoDate
para cambiar a un mes válido.
$('#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
}
}
});
Hay muchas maneras de hacer la lógica y la fecha de matemática allí, pero creo que podría obtener algo que funcione de esta manera.
se da este error no detectada TypeError: view.start.getMonth no es una función que no trabaja ... – Newbie