【问题标题】:jqGrid Disable Date Picker Value for Inline EditjqGrid 禁用内联编辑的日期选择器值
【发布时间】:2016-06-09 18:20:12
【问题描述】:

我正在使用 jqGrid 4.4.4。我有一个列的日期选择器,它返回今天的日期。我只需要将其默认为添加模式弹出窗口的今天日期。但是,当有人在线编辑记录时,当用户单击记录以进行内联编辑时,我需要日期不要更改为今天的日期。

这会导致数据完整性问题,因为当用户编辑现有记录时,日期会更改为今天的日期。

如何保持它通过模态添加新记录的方式,同时防止它在内联编辑时默认?

这是编辑选项中带有日期选择器的代码:

 { key: false, name: 'CHK_DT_RCVD', width: '130px', index: 'CHK_DT_RCVD',
            editable: true, formatter: 'date',
            formatoptions: { newformat: 'm-d-Y' },
            formoptions: {},
            editrules: { custom: true, custom_func: validDateCheck },

            editoptions:
            {

                dataInit: function (element)
                {
                    $(element).datepicker({

                        id: 'entryDate_Datepicker',
                        dateFormat: 'mm-dd-yy',
                        maxDate: new Date(2020, 0, 1),
                        showOn: 'focus'
                    }).val(moment(new Date()).format('MM/DD/YYYY'));
                }
             }
        },

【问题讨论】:

    标签: javascript jquery jqgrid


    【解决方案1】:

    首先你应该在setTimeout 中初始化datepicker。问题:dataInit 可能(将)被调用之前 element 被放置在 HTML 页面上(element 是断开连接的 DOM 元素)。

    setTimeout 内部,您可以遍历element 的父元素,并尝试找出该元素是否在tr.jqgrow 内部。如果$(element).closest("tr.jqgrow").length > 0 则日期选择器位于内联编辑(或单元格编辑)中。在这种情况下,您不应使用.val(moment(new Date()).format('MM/DD/YYYY'));

    此外,您可以考虑使用editoptionsdefaultValue 属性。它将在表单编辑的添加对话框中使用。在指定defaultValue 之后,您可能不需要使用任何.val(...)

    顺便说一句,我建议您删除不需要的key: falseindex: 'CHK_DT_RCVD' 属性并将width: '130px' 修复为width: 130,因为width 的值必须是整数。

    【讨论】:

      猜你喜欢
      • 2014-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-27
      • 1970-01-01
      相关资源
      最近更新 更多