2017-11-11 113 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