我使用fullcalendar http://fullcalendar.io/用户可以在日历中创建和删除事件。事件的相关信息以JSON形式在隐藏字段中发送。这工作时,用户正在创建事件,但我没有设法使它正确地更新隐藏字段,当用户删除事件。这是我的$('#calendar').fullCalendar
的eventclick回调
eventClick: function(event, element) {
if(confirm('Voulez-vous supprimer cette dispo?')) {
$('#calendar').fullCalendar('removeEvents', event._id);
var array_all_events = [];
var all_events = $('#calendar').fullCalendar('clientEvents');
// console.log(all_events);
$.each(all_events, function(index, value) {
// console.log(value.start["_d"]);
// console.log(index);
var day = moment(value.start["_d"]).format('dddd');
var start_time = moment(value.start["_d"]).format("HH:mm");
var end_time = moment(value.end["_d"]).format("HH:mm");
// var id = value.unique_id["_i"];
var slot = {
day: day,
start_time: start_time,
end_time: end_time,
};
array_all_events.push(slot);
console.log(array_all_events.length);
if (array_all_events.length == 0) {
$("#dispo_array").val("");
}
else {
$("#dispo_array").val(JSON.stringify(array_all_events));
}
});
}
},
当array_all_events中有多个哈希时,脚本实际工作,但当array_all_events为空时,我无法让它将#dispo_array
更新为空字符串。
我通过将if和else语句从每个循环中取出来让它工作。
eventClick: function(event, element) {
if(confirm('Supprimer cette disponibilité?')) {
$('#calendar').fullCalendar('removeEvents', event._id);
var array_all_events = [];
var all_events = $('#calendar').fullCalendar('clientEvents');
// console.log(all_events);
$.each(all_events, function(index, value) {
// console.log(value.start["_d"]);
// console.log(index);
var day = moment(value.start["_d"]).format('dddd');
var start_time = moment(value.start["_d"]).format("HH:mm");
var end_time = moment(value.end["_d"]).format("HH:mm");
// var id = value.unique_id["_i"];
var slot = {
day: day,
start_time: start_time,
end_time: end_time,
};
array_all_events.push(slot);
// console.log(array_all_events.length);
});
if (array_all_events.length == 0) {
console.log("hello");
$("#dispo_array").val("");
}
else {
console.log(typeof(array_all_events));
console.log(array_all_events.length);
$("#dispo_array").val(JSON.stringify(array_all_events));
}
}
},