2015-10-07 2 views
0

Я использую fullcalendar http://fullcalendar.io/ Пользователь может создавать и удалять события в календаре. Соответствующая информация о событиях отправляется в скрытом поле как JSON. Это работает, когда пользователь создает события, но мне не удалось корректно обновить скрытое поле, когда пользователь удаляет события. Вот eventclick обратного вызова из моего $('#calendar').fullCalendarfullcalendar не удается удалить последнее событие в календаре

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, но я не могу получить его, чтобы обновить #dispo_array в пустую строку, когда array_all_events пуст.

+0

Каков тип элемента - '# dispo_array'? Что это за элемент? –

+0

@GuruprasadRao это поле '' nput' – dave

+0

Итак, вы говорите '$ (" # dispo_array "). Val (" ");' не работает? –

ответ

0

Я получил его для работы, получив выражение 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)); 
     } 
     } 
    }, 
Смежные вопросы