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

X-editable设置combodate类型时返回Script error错误如何解决

错误根因

X-editable的combodate类型组件强依赖Moment.js库实现日期的解析、格式化和选择逻辑,你当前引入的静态资源中未包含该依赖,因此只要启用combodate类型就会触发底层调用缺失方法的脚本错误。

修复步骤

1. 引入Moment.js依赖

在你的head标签中,将Moment.js引入放在bootstrap-editable.min.js之前,示例如下:

<head>
  <link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet">
  <script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
  <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-mockjax/1.6.2/jquery.mockjax.js"></script>
  <!-- 新增Moment.js依赖 -->
  <script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js"></script>
  <link href="//cdnjs.cloudflare.com/ajax/libs/x-editable/1.5.0/bootstrap3-editable/css/bootstrap-editable.css" rel="stylesheet" />
  <script src="//cdnjs.cloudflare.com/ajax/libs/x-editable/1.5.0/bootstrap3-editable/js/bootstrap-editable.min.js"></script>
</head>

2. 补充combodate必填配置

如果是通过JS初始化组件,需要明确传入日期格式相关参数,避免日期解析报错:

$("#date2").editable({
  type: 'combodate',
  url: '/post',    
  pk: 490,    
  title: 'Enter date',
  // 补充日期格式配置,和你展示的日期格式匹配即可
  format: 'YYYY-MM-DD',
  viewformat: 'YYYY-MM-DD',
  template: 'YYYY / MM / DD',
  ajaxOptions: {
    dataType: 'json'
  },
  success: function(response, newValue) {
    if(!response) {
      return "Unknown error!";
    }          

    if(response.success === false) {
         return response.msg;
    }
  }        
});

验证

修改完成后点击日期类型的可编辑元素,即可正常弹出年月日三级选择框,选择完成后会正常触发AJAX请求更新,不会再抛出脚本错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 00:57:02