2017-11-11 84 views
2

嗨,我使用fullcalendar的安排表事件 现在我想禁用drop事件PAS日期为fullcalendar下降过去的日期,所以我固定使用下述溶液不要让

$('#calendar').fullCalendar({ 
    eventConstraint: { 
    start: moment().format('YYYY-MM-DD'), 
    end: '2100-01-01' 
    }, 
}); 

它工作正常,但现在我想禁用从一周几天了,所以我在eventConstraint添加dow,现在它停止工作

$('#calendar').fullCalendar({ 
    eventConstraint: { 
    start: moment().format('YYYY-MM-DD'), 
    end: '2100-01-01', 
    dow: [ 3, 5 ] 
    }, 
}); 

总之我想禁用过去的日期只允许wed and fri从日历中选择。

有无论如何解决问题。

+0

AFAIK道只有正常工作,如果没有日期部分(即时间只能在相关的开头和结尾)。你试图满足两个要求(1.过去的日期和2.只有婚姻和星期五)。因此我的建议是创建2个eventConstraints,每个需求一个。您可以将它们指定为eventConstraint选项的数组。 eventConstraint接受与businessHours完全相同的数据格式 - 在businessHours文档中有一组数组样式的选项:https://fullcalendar.io/docs/display/businessHours/ – ADyson

+0

@ADyson感谢您的支持帮助,我试过你的解决方案,但不工作,即使创建两个eventConstraints,两种情况都停止工作。 '''eventConstraint:[{ 启动:时刻()格式( 'YYYY-MM-DD'), 端: '2100年1月1日', },{ 道:[3,5] }],''' – ashvin

回答

0

已经给出一些这方面的更多的思考您的意见后,我觉得这个用一些自定义代码是最好的解决,通过eventDrop回调:

eventDrop: function(event, delta, revertFunc) { 
    var day = event.start.clone(); 
    day.startOf("day"); 
    var dayOfWeek = day.isoWeekday(); 
    if (day.isBefore(moment().startOf("day")) || (dayOfWeek != 3 && dayOfWeek != 5)) { 
    revertFunc() 
    } 
} 

这将检查您的两个约束:如果一天在过去,或者该日不是星期三而不是星期五,则执行revertFunc(),这是一个fullCalendar提供的回调,它将事件发送回其在日历上的原始位置。

在这里你可以找到一个工作演示:http://jsfiddle.net/ughug9xx/2/

+0

感谢您的演示,我会检查它是否适用于我,我会将您的答案标记为正确。并再次感谢您的时间:)。 – ashvin