首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在全日历中使过去的日期不可选?

如何在全日历中使过去的日期不可选?
EN

Stack Overflow用户
提问于 2013-02-20 19:23:31
回答 16查看 66.4K关注 0票数 28

问题是,如何在完整日历的月/周视图中禁用过去日期的可选。

我希望用户不允许单击/选择过去的日期。

这里是我试图在事件呈现上实现的一些谷歌代码片段:

selectable: true,
selectHelper: false,
select: function(start, end, allDay) {
        var appdate = jQuery.datepicker.formatDate('<?php echo $DPFormat; ?>', new Date(start));
        jQuery('#appdate').val(appdate);
        jQuery('#AppFirstModal').show();
    },
    eventRender: function(event, element, view)
    {
        var view = 'month' ;
       if(event.start.getMonth() !== view.start.getMonth()) { return false; }
    },

但是它不能工作。

我也尝试了bellow,这有助于我隐藏过去的日期文本,但可选择仍然在过去的日期框工作。

.fc-other-month .fc-day-number {
     display:none;
}

我真的被这个问题困住了。请谁来帮帮我。谢谢..。

EN

回答 16

Stack Overflow用户

回答已采纳

发布于 2013-02-22 07:15:59

我已经在我的全日程表中做到了这一点,它工作得很完美。

您可以在select函数中添加此代码。

 select: function(start, end, allDay) {
    var check = $.fullCalendar.formatDate(start,'yyyy-MM-dd');
    var today = $.fullCalendar.formatDate(new Date(),'yyyy-MM-dd');
    if(check < today)
    {
        // Previous Day. show message if you want otherwise do nothing.
        // So it will be unselectable
    }
    else
    {
        // Its a right date
        // Do something
    }
  },

我希望它能对你有所帮助。

票数 35
EN

Stack Overflow用户

发布于 2016-04-27 02:39:11

我喜欢这种方法:

select: function(start, end) {
    if(start.isBefore(moment())) {
        $('#calendar').fullCalendar('unselect');
        return false;
    }
}

它本质上会在“现在”之前禁用选择。

Unselect method

票数 31
EN

Stack Overflow用户

发布于 2017-01-30 20:45:37

感谢this answer,我找到了下面的解决方案:

$('#full-calendar').fullCalendar({
    selectable: true,
    selectConstraint: {
        start: $.fullCalendar.moment().subtract(1, 'days'),
        end: $.fullCalendar.moment().startOf('month').add(1, 'month')
    }
});
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14978629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档