2011-07-28 48 views
8

Estoy tratando de integrar el plugin de calendario completo de jquery. Y quiero deshabilitar las fechas anteriores para la selección. Por lo tanto, puedo seleccionar solo las fechas a partir de la fecha actual. ¿Como es posible? ¿Cómo puedo filtrar las fechas y especificar una condición? Soy nuevo en jquery.jquery fullcalendar

$(document).ready(function() { 
    var date = new Date(); 
    var d = date.getDate(); 
    var m = date.getMonth(); 
    var y = date.getFullYear(); 

    var calendar = $('#calendar').fullCalendar({ 
     header: { 
      left: 'prev,next today', 
      center: 'title', 
      right: 'month,agendaWeek,agendaDay' 
     }, 
     selectable: true, 
     selectHelper: true, 
     select: function(start, end, allDay) { 
      var title = prompt('Event Title:'); 
      if (title) { 
       calendar.fullCalendar('renderEvent', 
        { 
         title: title, 
         start: start, 
         end: end, 
         allDay: allDay 
        }, 
        true // make the event "stick" 
       ); 
      } 
      calendar.fullCalendar('unselect'); 
     }, 
     editable: true, 
    }); 
}); 

Respuesta

5

En el método de selección, se le proporciona la fecha de inicio y de finalización seleccionada, y antes en el método que tiene la fecha actual en la variable date. Así que simplemente compárelos, y si es menor que date, maneje el error.

select: function(start, end, allDay) { 
    if(start < date) 
    { 
    // Do whatever you want here. 
    alert('Cannot select past dates.'); 
    return; 
    } 

    var title = prompt('Event Title:'); 
    if (title) { 
    calendar.fullCalendar('renderEvent', { 
     title: title, 
     start: start, 
     end: end, 
     allDay: allDay 
     }, 
     true // make the event "stick" 
    ); 
    } 

    calendar.fullCalendar('unselect'); 
}, 
+0

Cómo establecer el nombre del mes como nombre de mes corto como como JUL. Actualmente, cuando doy start.getMonth() y alerta, muestra el mes como integet. Es decir. para el 7 de julio. Quiero mostrarlo como JUL – rubyist

+0

@usuario, debes hacer otra pregunta ya que esto no está relacionado con lo que originalmente pediste. Sin embargo, fullCalendar tiene mesNamesShort array (http://arshaw.com/fullcalendar/docs/text/monthNamesShort/) así que simplemente haga algo como 'monthNamesShort [start.getMonth()]' – Brandon

+0

así que en el código de arriba si intento alerta (monthNamesShort [start.getMonth()]); entonces ¿tendré el mes como JUL? Soy un novato en jquery. Así que es una etapa de aprendizaje para mí :) – rubyist

1

Nota sobre la respuesta de Brandon, la ventana emergente también aparecerá si hace clic en la fecha actual. Debería verificar si el usuario hizo clic en la fecha de hoy también:

if (start < date && start.getDate() != date.getDate()) { 
    alert('Cannot select past dates.'); 
    return; 
} 
+0

¿Es posible eliminar las fechas anteriores y las fechas del mes siguiente del calendario completo? Entonces, ¿para el mes actual debería mostrar solo las fechas y los días actuales? – rubyist

Cuestiones relacionadas