我被jqgrid绑定,json从ajax返回。 json的日期格式如下
11/1/2013 12:00:00 AM
在colmodel中我指定了以下
{ name: 'datecol', index: 'SignDate', width: '200', jsonmap: 'cell.SignDate', editable: true, sorttype: 'date',
editable: true, formatter: 'date', formatoptions: {
srcformat: 'm-d-Y H:i:s',
newformat: 'Y-M-d'
},
editoptions: { dataInit: initDateEdit },
initDateEdit = function(elem) {
setTimeout(function() {
$(elem).datepicker({
formatter: 'date', formatoptions: {
srcformat: 'm-d-Y H:i:s',
newformat: 'yy-M-d'
}
autoSize: true,
showOn: 'button', // it dosn't work in searching dialog
changeYear: true,
changeMonth: true,
showButtonPanel: true,
showWeek: true
});
//$(elem).focus();
},100);
}
这会在网格中正确显示日期
2013-Nov-01
但是当我点击addnew记录时,弹出窗口出现,当我选择日期并点击提交时,在网格中,新记录显示
NaN-undefined-NaN
日期栏中的。这有什么不对?
当我使用此链接中给出的相同代码时 http://www.ok-soft-gmbh.com/jqGrid/LocalFormEditing.htm
编辑工作正常,但当我添加新行时,日期为NaN-undefined-NaN
请帮忙。
答案 0 :(得分:1)
我认为您所描述的问题的原因是您使用的jQuery UI Datepicker的错误参数。您使用的formatter
和formatoptions
参数datepicker
不存在。相反,您应使用dateFormat选项,其格式为here。
更新:您描述的问题的主要原因是您使用的日期格式错误。重要的是要了解srcformat
的{{1}}和newformat
应该PHP date format,但jQuery UI Datepicker支持另一种格式,例如here。输入数据formatoptions
包含日期和时间。另一方面,jQuery UI Datepicker仅支持日期。因为您使用11/1/2013 12:00:00 AM
,所以我想您只想忽略日期的时间部分。如果我建议你使用
newformat: 'yy-M-d'
而不是
formatter: 'date',
formatoptions: {
srcformat: 'm/d/Y',
newformat: 'Y-m-d'
}
你目前使用的。下一个问题是jQuery UI Datepicker的formatter: 'date',
formatoptions: {
srcformat: 'm-d-Y H:i:s',
newformat: 'Y-m-d'
}
选项。您必须使用对应dateFormat
但使用正确格式的格式(描述为here)。如果是srcformat
,您应该使用srcformat: 'm/d/Y'
而不是dateFormat: 'm/d/yy'
中使用的dateFormat: 'yy-m-dd'
。
jsfiddle demo现在可以正常使用。