【发布时间】:2022-12-02 02:21:53
【问题描述】:
I have a problem with updating an event in FullCalendar v5 with a modal.
I have tried my best to find a solution, but unfortunately I have failed.
The first part is for opening and closing the modal, then there is some data for default event.
and reading event from array then when you click on a day or select more than one day an modal will open and after you click on submit data of event will add to calendar in this part i want to add a part when i click on an event a modal open and i can to edit an event
$(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>
【问题讨论】:
-
So what exactly is the problem then? Do you get the same syntax error in the console as your demo does when I try to run it? Also if you're going to provide a runnable demo, it'll need some relevant HTML and the correct fullCalendar CDN references to go with it, so we can actually see it running.
标签: jquery calendar fullcalendar fullcalendar-5