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

在jqGrid中使用Bootstrap DateTimePicker的显示与触发问题求助

解决方案

1. 解决库冲突问题

你同时引入了tempusdominus-bootstrap-4和bootstrap-datetimepicker两套datetimepicker组件,这会导致JS冲突,是控件无法弹出的核心原因。选择其中一套保留,移除另一套的所有资源:

推荐保留tempusdominus-bootstrap-4(依赖已引入的moment.js),需要移除以下资源:

  • ajax/libs/bootstrap-datetimepicker/4.7.14/css/bootstrap-datetimepicker.min.css
  • ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js

同时补充tempusdominus的CSS(如果之前未引入):

<link rel="stylesheet" href="ajax/libs/tempusdominus-bootstrap-4/5.0.1/css/tempusdominus-bootstrap-4.min.css">

调整后的库引入顺序(JS必须按依赖顺序加载):

  • jquery/3.5.1/jquery.min.js
  • jquery-ui/1.13.0/jquery-ui.js
  • ajax/libs/popper.js/1.16.0/umd/popper.min.js
  • bootstrap/4.4.1/js/bootstrap.min.js
  • ajax/libs/moment.js/2.22.2/moment.min.js
  • ajax/libs/tempusdominus-bootstrap-4/5.0.1/js/tempusdominus-bootstrap-4.min.js
  • free-jqgrid/4.15.5/js/i18n/grid.locale-de.js
  • free-jqgrid/4.15.5/js/jquery.jqgrid.min.js(核心JS,必须引入)

2. 修正jqGrid列配置

针对后端返回的dd.MM.yyyy HH:mm格式字符串,调整列配置确保格式匹配且控件初始化正确:

{
    label: "Valid Until",
    name: 'validUntil',
    width: intColumnWidth,
    headerTitle: "Valid Until",
    editrules: {
        required: true
    },
    editable: true,
    formatter: 'date',
    formatoptions: {
        srcformat: 'd.m.Y H:i', // 匹配后端返回的dd.MM.yyyy HH:mm格式
        newformat: 'd.m.Y H:i'
    },
    edittype: 'text', // 明确编辑控件类型为文本框
    editoptions: {
        // 确保编辑框初始值正确
        defaultValue: function(rowData) {
            return rowData.validUntil; // 直接使用后端返回的原始格式值
        },
        dataInit: function(element) {
            // 初始化tempusdominus datetimepicker
            $(element).datetimepicker({
                format: 'DD.MM.YYYY HH:mm', // 和后端格式一致
                locale: 'de', // 德语本地化适配日期显示
                ignoreReadonly: true // 允许编辑jqGrid编辑时设置的只读状态控件
            });
        }
    }
}

3. 解决编辑框空白问题

部分时间戳显示空白,是因为jqGrid的date formatter在解析部分日期时出现异常(比如月份和日期顺序混淆)。通过editoptions.defaultValue直接返回后端原始值,绕过jqGrid的自动格式转换,确保编辑框能正确填充内容。

4. 额外排查点

  • 确认后端返回的validUntil字段无隐藏字符或格式错误(比如多余空格、大小写问题)
  • 检查jqGrid的表单编辑配置,确保未覆盖编辑控件的初始化逻辑
  • 如果选择使用bootstrap-datetimepicker,初始化代码需改为:
    dataInit: function(element) {
        $(element).datetimepicker({
            format: 'dd.mm.yyyy HH:mm',
            locale: 'de'
        });
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 16:56:03