我在FullCalendar v5中用模态更新事件时遇到问题。
我已经尽力寻找解决方案,但不幸的是我失败了。
第一部分是打开和关闭模态,然后是默认事件的一些数据。
从数组中读取事件,然后当你点击一天或选择多天时,一个模态将打开,在你点击提交后,事件的数据将添加到日历中
$(document).ready(function() {
var modal = document.getElementById("myModal");
var span = document.getElementsByClassName("close")[0];
$("#open").click(function() {
modal.style.display = "block";
});
// When the user clicks on <span> (x), close the modal
$("span").click(function() {
modal.style.display = "none";
$('#EventT').val('');
});
// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
}
}
const myEvents = {
title: "event5",
start: '2022-08-21',
end: '2022-08-29'
}
var myEvent = [{
id: 'eve',
title: 'event1',
start: '2022-08-21'
},
{
title: 'event2',
start: '2010-01-05',
end: '2010-01-07'
},
{
title: 'event3',
start: '2010-01-09T12:30:00',
},
{
title: myEvents.title,
start: myEvents.start,
end: myEvents.end,
}
];
var localeSelectorEl = document.getElementById('locale-selector');
var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
headerToolbar: {
left: 'prev,next today',
center: 'title',
right: 'dayGridMonth,timeGridWeek,timeGridDay'
},
initialDate: '2020-09-12',
navLinks: true, // can click day/week names to navigate views
selectable: true,
nowIndicator: true,
selectMirror: true,
select: function(info) {
var modal = document.getElementById("myModal");
document.getElementById("StartD").value = info.startStr;
document.getElementById("EndD").value = info.endStr;
modal.style.display = "block";
calendar.unselect()
},
dateClick: function(info) {
var modal = document.getElementById("myModal");
modal.style.display = "block";
document.getElementById("StartD").value = info.dateStr;
document.getElementById("EndD").value = info.dateStr;
},
eventClick: function(info) {
var modal = document.getElementById("myModal");
modal.style.display = "block";
document.getElementById("EventT").value = info.event.title;
document.getElementById("StartD").value = info.event.startStr;
// document.getElementById("EndD").value = info.event.endStr;
var ddd = info.event.endStr;
if (ddd.length === 0) {
document.getElementById("EndD").value = info.event.startStr;
} else {
document.getElementById("EndD").value = info.event.endStr;
}
},
editable: true,
dayMaxEvents: true,
eventSources: [{
events: myEvent,
}
]
});
calendar.render();
$("#submit").on("click", function(event) {
var title = $("#EventT").val();
var start = $("#StartD").val();
var end = $("#EndD").val();
modal.style.display = "none";
if (title) {
calendar.addEvent({
title: title,
start: start,
end: end,
}
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
当"保存";按钮点击您的";编辑模态";。
例如:
calendar1 = new FullCalendar.Calendar(calendar-element, {
height: 650,
initialView: 'timeGridDay',
slotMinTime: '08:00:00',
eventClick: function(eventInfo){
eventInfo.event.setProp('title', 'This is a title');
eventInfo.event.setStart('2022-12-01 15:00:00');
eventInfo.event.setEnd('2022-12-01 16:00:00');
}
}