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

DataTables SearchBuilder与Moment.js集成报t is not a function错误问询

解决方案

问题根因

报错是两个问题共同导致的:

  1. 依赖加载顺序错误、依赖重复加载:当前加载顺序里SearchBuilder的引入时机早于Moment.js、datetime-moment插件和DataTables DateTime组件,SearchBuilder初始化时无法识别日期处理方法,同时重复加载了两次SearchBuilder相关JS,也会触发异常。
  2. 业务代码存在语法错误:DataTable初始化的配置对象缺少闭合符号,执行时会抛出语法异常。

具体修复步骤

  1. 调整JS加载顺序,删除重复依赖
    正确的加载顺序如下,同时移除重复加载的两次SearchBuilder相关JS:
  • 最先加载jQuery
  • 紧接着加载Moment.js
  • 之后加载datetime-moment排序插件
  • 再加载dataTables.dateTime.min.js(SearchBuilder日期筛选的必要依赖)
  • 最后加载jquery.dataTables.min.js以及其他所有DataTables扩展(包括SearchBuilder相关JS,仅加载一次即可)
  1. 修正业务代码语法错误
    在DataTable配置的aoColumnDefs配置块结束后,补充缺失的闭合符号});,完成DataTable初始化调用。

  2. 明确指定日期列的类型
    在aoColumnDefs配置中增加日期列的类型声明,避免SearchBuilder无法正确识别日期列格式:

aoColumnDefs: [
  {
    orderable: false,
    aTargets: [0, 1]
  },
  {
    type: 'moment',
    aTargets: [2] // 此处替换为你实际的日期列索引值
  }
]

执行以上修改后,日期筛选的报错即可解决,功能正常运行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 23:15:02