我正在使用jQuery Fullcalendar插件。在同一页面上,我有一个带有复选框的表单,用于过滤从服务器获取的事件数据。我的想法是,我想将这些表单值传递给eventSources
对象,以便它们与开始/结束时间戳一起传输到服务器。
The docs有一个示例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()
根本没有被调用。 我做错了什么?
答案 0 :(得分:1)
问题是(似乎)Fullcalendar只读取data
个对象一次。因此,即使我将其设置为函数,它也是第一次读取而不是再读取它。我不确定,但我认为潜在的ajax()
调用可能是如何工作的?
所以我已将其更改为删除eventSources
,然后每次更新时都会读取新的。{1}}。看起来很难看,但很有效。
答案 1 :(得分: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()
};
}
}
});