如何为可选择的FullCalendar设置规则

时间:2017-06-08 09:05:41

标签: javascript jquery calendar fullcalendar asp.net-mvc-5

我正在尝试为可选属性设置规则。规则应该是这样的:  selectable attribute is true for future weeks, otherwise false 但是,我找不到如何查看日历选项中的日期。我试过一些方法,但javascript不接受这些方式。这是我目前的选择。有帮助吗?

$(document).ready(function () {

        $('#calendar').fullCalendar({
        //some options
        //some options

            selectable: true,
            selectHelper: true,

            select: function (start, end) { 
                var title = loadRequired("ff8081815c776701015c7788151d06b4",
                    "activity",
                    "@Session["token"].ToString()");
                var eventData;
                if (title) {
                    eventData = {
                        title: title,
                        start: start,
                        end: end
                    };
                    $('#calendar').fullCalendar('renderEvent', eventData, true); // stick? = true
                }
                $('#calendar').fullCalendar('unselect');
            },
     });

});

3 个答案:

答案 0 :(得分:0)

我可能会弄错,但因为可选择只是一个布尔而且不接受回调我不认为有一个很好的方法可以做到这一点。我可能会将其设置为true,然后在select回调中捕获它。

在选择回调中,您可以检查所选日期是否在将来,是否只是调用unselect并从函数返回。

答案 1 :(得分:0)

您可以执行以下两种方法之一:

1)在“选择”回调中,检查开始/结束日期。如果它们在您要允许的日期之前,则不要继续处理代码,只返回false。

2)您还可以设置validRange属性,以便甚至无法将事件拖到您选择排除的区域:https://fullcalendar.io/docs/current_date/validRange/

答案 2 :(得分:0)

我检查了选择atrr的情况。

select: function (start, end) {
    var check = end.unix()*1000;
    var today = @weekdays[6]*1;


    if(today > check)
    { 
        $('#calendar').fullCalendar('unselect');

    }else
    {
        $('#calendar').fullCalendar('select');
        var title = loadRequired("ff8081815c776701015c7788151d06b4",
            "activity",
            "@Session["token"].ToString()");
        var eventData;
        if (title) {
            eventData = {
                title: title,
                start: start,
                end: end
            };
            $('#calendar').fullCalendar('renderEvent', eventData, true); // stick? = true
        }

    }

},

现在我可以在功能上做我想做的事。但是,我仍然可以在日历上选择区域,区域的颜色变为蓝色,然后是我的检查点,如果情况为假:取消选择atrr被激活。 有没有办法做到这一点?实际上,当区域过去时,selectable属性不应该为true,并且在未来几周应该为true