[英]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: false
和index: 'CHK_DT_RCVD'
属性,并将width: '130px'
固定为width: 130
因为width
的值必须为整数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.