禁用FullCalendar中过去日期的删除

时间:2015-11-03 10:25:42

标签: javascript jquery fullcalendar

我最近开始使用FullCalendar插件。我正在尝试在日历中删除事件的函数。但在保存到数据库之前,我想检查并禁用/阻止在今天之前的日期丢弃外部事件。

有关如何做到这一点的任何想法?我正在寻找过去几天变灰或类似的东西,以便我可以显示已经存在的事件。只是想阻止用户在过去的日期丢弃事件。

修改

 drop: function (date, jsEvent, ui) {

     if(date<currentDate) {
         $('#calendar').fullCalendar('removeEvents', event.id);
     }

我尝试使用此方法从日历中删除已删除的事件并再次将其附加到div。即便如此,它也不会被删除。

感谢。 :)

2 个答案:

答案 0 :(得分:9)

eventConstraint可以禁用在既定边界之外的拖放

灰色过去几天

/* SHADE DAYS IN THE PAST */
td.fc-day.fc-past {
    background-color: #EEEEEE;
}

对于eventConstraint

        /* This constrains it to today or later */
        eventConstraint: {
            start: moment().format('YYYY-MM-DD'),
            end: '2100-01-01' // hard coded goodness unfortunately
        }

http://jsfiddle.net/1qsrjffL/

对于eventConstraint的'end',如果您喜欢vs hard coded,可以在当前日期添加天数

编辑:

要在日视图中显示灰色时间,您可以使用businessHours

businessHours: {
    start: moment().format('HH:mm'), /* Current Hour/Minute 24H format */
    end: '17:00', // 5pm? set to whatever
    dow: [0,1,2,3,4,5,6] // Day of week. If you don't set it, Sat/Sun are gray too
}

允许在过去 中将外部事件丢弃到AgendaDay上。编辑eventConstraint以包含时间将起作用'YYYY-MM-DD HH:mm'但它会阻止今天在月视图中删除......

http://jsfiddle.net/1qsrjffL/1/

答案 1 :(得分:3)

eventDrop应该让你到那里:

eventDrop: function(event, delta, revertFunc) {
        if(event.start < currentDate) {
            revertFunc();
        }
    }