【问题标题】:jquery fullcalendarjQuery全日历
【发布时间】:2023-03-19 16:35:01
【问题描述】:

我正在尝试集成 jquery 完整日历插件。我想禁用过去的日期进行选择。所以我只能选择从当前日期开始的日期。这怎么可能?如何过滤日期并指定条件。我是 jquery 的新手。

$(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,
    });
});

【问题讨论】:

    标签: jquery jquery-plugins fullcalendar


    【解决方案1】:

    在 select 方法中,为您提供了选定的开始和结束日期,而在该方法的早期,您在 date 变量中获得了当前日期。所以只要比较它们,如果小于date,就处理错误。

    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');
    },
    

    【讨论】:

    • 如何将月份名称设置为 Shortmonth 名称,就像 JUL 一样。目前,当我给出 start.getMonth() 并发出警报时,它会将月份显示为整数。 IE。 7 月 7 日。我想将其显示为 JUL
    • @user,您应该问另一个问题,因为这与您最初提出的问题无关。但是,fullCalendar 有一个 monthNamesShort 数组 (arshaw.com/fullcalendar/docs/text/monthNamesShort),所以只需执行类似 monthNamesShort[start.getMonth()] 的操作
    • 所以在上面的代码中如果我尝试提醒 (monthNamesShort[start.getMonth()]);那么我会得到七月的月份吗?我是 jquery 的新手。所以这对我来说是一个学习阶段:)
    • 我需要在上面的提示信息之后显示它。请帮忙
    • @user,您实际上已经发布了另一个问题。我建议将这些 cmets 移至另一个问题,以便让更多人看到它。
    【解决方案2】:

    请注意关于 Brandon 的回答,如果您单击当前日期,也会出现弹出窗口。您还需要检查用户是否还点击了今天的日期:

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

    【讨论】:

    • 是否可以从完整日历中删除过去的日期和下个月的日期。所以对于当前月份,它应该只显示当前日期和天数..??
    猜你喜欢
    • 1970-01-01
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多