You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FullCalendar 3.1.0如何通过日期获取对应事件的title、description等属性

实现方案

步骤1:调整后端接口返回数据结构

你当前使用的GetEvent接口仅返回日期|事件ID格式的字符串,缺少所需的title、description字段,首先修改后端逻辑,在返回的拼接字符串中新增这些字段,参考格式:
{日期}|{事件ID}|{事件标题}|{事件描述}
如果允许调整接口规则,更推荐后端直接返回JSON对象而非分割字符串,后续扩展性更强。

步骤2:修改前端自动补全的数据映射逻辑

在autocomplete的success回调的$.map方法中,把新增的字段也解析到返回的item对象中:

success: function (data) {                           
    response($.map(data.d, function (item) {
        const arr = item.split('|');
        return {
            label: arr[0] ,
            val: arr[1],
            title: arr[2], // 对应新增的事件标题
            desc: arr[3] // 对应新增的事件描述
        }                            
    }))
},

步骤3:在select回调中给弹窗字段赋值

打开弹窗之前,把对应字段的值写入弹窗内的输入元素即可,示例代码如下,注意把选择器替换成你弹窗里实际的表单元素ID:

select: function (e, i) {
    $("[id$=hfCustomerId]").val(i.item.val);
    date = moment(i.item.label, "DD/MM/YYYY HH:mm");
    $("#calendar").fullCalendar('gotoDate', date);
    // 给弹窗表单赋值
    $("#update_title").val(i.item.title);
    $("#update_description").val(i.item.desc);
    $('#updatedialog').dialog('open');
},

备选方案:从已加载的FullCalendar事件中获取数据

如果你的FullCalendar已经预先加载了所有日历事件,不需要修改后端接口也可以实现,直接在select回调中通过事件ID/日期匹配对应事件即可:

select: function (e, i) {
    $("[id$=hfCustomerId]").val(i.item.val);
    const eventId = i.item.val; // 假设val字段存储的是事件唯一ID
    date = moment(i.item.label, "DD/MM/YYYY HH:mm");
    $("#calendar").fullCalendar('gotoDate', date);
    // 从fullCalendar的已加载事件中匹配对应事件
    const targetEvent = $("#calendar").fullCalendar('clientEvents', eventId)[0];
    if(targetEvent) {
        $("#update_title").val(targetEvent.title);
        $("#update_description").val(targetEvent.description);
    }
    $('#updatedialog').dialog('open');
},

内容的提问来源于stack exchange,提问作者GiL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 10:27:04