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

Fullcalendar 3.1.0(JS/C#)搜索事件后updateEvent无响应无法弹出编辑对话框

FullCalendar 3.1.0 搜索后无法打开编辑对话框问题修复方案

核心问题排查

  • API功能误用:fullCalendar('updateEvent', eventObj) 方法的作用是将修改后的事件属性同步刷新到日历视图,本身不具备弹出编辑/删除对话框的能力,你需要的预填充弹窗是项目自定义的业务逻辑,需要手动调用对应弹窗的打开方法。
  • 参数取值错误:你的代码中同时将i.item.label作为时间值格式化跳转日期、又作为事件ID查询事件,明显是后端返回的字段映射错误:后端接口返回的item按|分割后,是[事件时间/名称, 事件ID]的结构,事件ID实际存储在i.item.val中,传错参数导致getEventById返回空值,updateEvent接收空参数自然没有任何效果。

修复步骤

  1. 先增加日志定位参数是否正确:
select: function (e, i) {
    $("[id$=hfCustomerId]").val(i.item.val);
    date = moment(i.item.label, "DD/MM/YYYY HH:mm");
    $("#calendar").fullCalendar('gotoDate', date);
    // 增加以下两行调试,打开浏览器控制台看输出
    console.log('查询用的事件ID应为:', i.item.val); // 事件ID存在val字段中
    let eventProva = $("#calendar").fullCalendar("getEventById", i.item.val);
    console.log('查询到的事件对象:', eventProva);
    if(eventProva) {
        // 这里不要调用updateEvent,而是触发你自己写的打开编辑弹窗的逻辑,把eventProva传进去预填充
        // 示例:openEditModal(eventProva);
        // 如果确实需要修改事件属性再调用updateEvent,比如修改事件标题:
        // eventProva.title = '新标题';
        // $("#calendar").fullCalendar('updateEvent', eventProva);
    } else {
        console.log('未找到对应事件,请检查传入的ID是否正确');
    }
}
  1. 确认事件ID字段正确后,把你原有的打开更新/删除对话框的逻辑放到eventProva存在的分支里,将查询到的事件对象传入对话框做字段预填充即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 08:57:03