0

我正在使用 jQuery Fullcalendar 插件。在同一页面上,我有一个带有复选框的表单,用于过滤从服务器获取的事件数据。这个想法是我想将这些表单值传递给eventSources对象,以便它们与开始/结束时间戳一起传输到服务器。

文档有一个eventSources这样的示例对象:

$('#calendar').fullCalendar({
   eventSources: [
     // your event source
      {
        url: '/myfeed',
        type: 'POST',
        data: {
          custom_param1: 'something',
          custom_param2: 'somethingelse'
        },
      }
      // other sources...
   ]
});

我修改为:

   eventSources: [
   {
     // ...as above
     data: getFormAsObject(),
     // as above...
   }

我希望将表单的值传递给data对象。在getFormAsObject()函数中,我将表单序列化并将其转换为关联数组。

剩下的就是劫持表单提交。因此,如果单击“提交”按钮,我会取消默认的 POST 操作,并调用

calendar.fullCalendar("refetchEvents");

但是,这不起作用,并且getFormAsObject()根本没有被调用。我究竟做错了什么?

4

2 回答 2

1

问题是(似乎)Fullcalendar 只读取该data对象一次。所以它第一次读取它然后不再读取它,即使我将它设置为一个函数。我不确定,但我认为这可能是底层ajax()调用的工作方式?

因此,我将其更改为删除eventSources,然后在每次更新时读取新的。看起来很难看,但有效。

于 2012-11-09T11:28:41.397 回答
0

在此处使用“动态数据参数”倒数第二个选项: https ://fullcalendar.io/docs/events-json-feed

$('#calendar').fullCalendar({

  events: {
    url: '/myfeed.php',
    data: function() { // a function that returns an object
      return {
        dynamic_value: Math.random()
      };
    }
  }

});
于 2018-11-06T10:55:45.177 回答