繁体   English   中英

jqGrid禁用内联编辑的日期选择器值

[英]jqGrid Disable Date Picker Value for Inline Edit

我正在使用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'));
                }
             }
        },

首先,您应该在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')); 在这种情况下。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM