FullCalendar如何检查所选日期是否有事件?

3
我正在使用Full Calender js插件,目前一切都很好。但是我想检查起始和结束之间的选择是否有事件?我只需要返回真或假。基本上,如果已经存在日期选择的事件,我想要阻止用户创建事件。
var calendar = $('#calendar').fullCalendar({

    selectable: true,
    selectHelper: true,
    firstDay: 5,
    weekNumbers: false,
    select: function (start, end, allDay, event) {
        var TitleSet = false;
        StartDate = start;
        EndDate = end;
        if (event) {}
        if (TitleSet) {
            calendar.fullCalendar('renderEvent', {
                title: title,
                start: start,
                end: end,
                allDay: allDay
            },
            true // make the event "stick"
            );
        }
        calendar.fullCalendar('unselect');

    },
    editable: true,
    events: EventsArr,
    eventRender: function (event, element) {
        element.qtip({
            content: event.description
        });
    }
});

1
好的,你的事件存储在哪里?你尝试过什么?请更清晰地表达,添加更多细节... - CodeBird
事件被储存在我的数据库中,并以数组的形式调用,名为EventsArr。 - Pomster
1
可能是Can I prevent events with conflict time?的重复问题。 - MarCrazyness
你需要创建一个方法来获取已经加载在日历中的事件数组,然后使用该数组来获取所有有事件的日期,如果用户单击其中一个日期,则不允许创建另一个事件。这是仅由您完成和解决的事情,您需要为自己制定算法... - Henrique C.
2个回答

8

我试过这种方法,看起来很好

    // check if this day has an event before
    function IsDateHasEvent(date) {
        var allEvents = [];
        allEvents = $('#calendar').fullCalendar('clientEvents');
        var event = $.grep(allEvents, function (v) {
            return v.start === date;
        });
        return event.length > 0;
    }

然后您可以从dayclick事件调用它。

    dayClick: function (date, allDay, jsEvent, view) {
                        
        if (!IsDateHasEvent(date)) {
            selectedDate = date;
            $("#divAddNewAppointment").dialog("open");
        }
        else {
            $('<%= "#" + lblMessage.ClientID%>').html(" your error msg");
            $("#divMessage").dialog("open");
        }
    }

0
你需要创建一个方法来获取已经加载在日历中的事件数组,然后使用该数组获取所有有事件的日期。如果用户点击其中一天,则不允许创建另一个事件。这是只有你可以完成和想出来的事情,你需要为自己制定一个算法......
检查clientEvents

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接