2011-07-28 2 views
8

Sto cercando di integrare il plug-in di calendario completo di jquery .. E voglio disabilitare le date precedenti per la selezione .. Quindi posso selezionare solo le date a partire dalla data corrente. Come è possibile? Come posso filtrare le date e specificare una condizione. Sono nuovo di 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, 
    }); 
}); 

risposta

5

Nel metodo di selezione, si sono dotati di inizio e fine la data selezionata, e in precedenza nel metodo che hai la data corrente nella variabile date. Quindi confrontali e se è inferiore a date, gestisci l'errore.

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

Come impostare il nome del mese come nome di Shortmonth come JUL. Attualmente quando fornisco start.getMonth() e alert mostra il mese come integet. Cioè per il 7 luglio. Voglio visualizzarlo come JUL – rubyist

+0

@user, dovresti fare un'altra domanda poiché questo non è correlato a ciò che hai chiesto in origine. Tuttavia, fullCalendar ha un array monthNamesShort (http://arshaw.com/fullcalendar/docs/text/monthNamesShort/) quindi fai qualcosa come 'monthNamesShort [start.getMonth()]' – Brandon

+0

quindi nel codice sopra se cerco di alert (monthNamesShort [start.getMonth()]); allora avrò il mese come JUL ?? Sono novizio di jquery .. Quindi è una fase di apprendimento per me :) – rubyist

1

Nota relativa alla risposta di Brandon, il popup apparirà anche se si fa clic sulla data corrente. Dovresti controllare se l'utente ha fatto clic anche sulla data odierna:

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

E 'possibile rimuovere le date passate e le date del prossimo mese dal calendario completo .. Quindi per il mese corrente dovrebbe visualizzare solo le date e i giorni attuali .. ?? – rubyist