2013-08-23 27 views
0

我用JSON的jqGrid綁定從阿賈克斯返回。 JSON有日期之後在colmodel格式的jqGrid和日期選擇器控制給錯誤的新記錄

11/1/2013 12:00:00 AM 

我指定了以下

{ 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

編輯工作給予罰款,但是當我添加新行,日期當屬南未定義楠

請幫助

回答

1

我認爲你所描述的問題的原因是jQuery UI的日期選擇器的參數不對您使用。您使用formatterformatoptions參數datepicker不存在。取而代之的是,您應該使用dateFormat選項,其格式描述爲here

已更新:您描述的問題的主要原因是您使用的日期格式錯誤。要明白,srcformatformatoptionsnewformat應該有PHP date format是很重要的,但jQuery UI的日期選擇器支持它例如描述here另一種格式。輸入數據11/1/2013 12:00:00 AM包含日期和時間。另一方面,jQuery UI Datepicker僅支持日期。因爲你使用newformat: 'yy-M-d'那麼我想你只是忽略日期的時間部分。在這種情況下,我建議你使用的

formatter: 'date', 
formatoptions: { 
    srcformat: 'm/d/Y', 
    newformat: 'Y-m-d' 
} 

代替

formatter: 'date', 
formatoptions: { 
    srcformat: 'm-d-Y H:i:s', 
    newformat: 'Y-m-d' 
} 
您目前使用

。接下來的問題是jQuery UI Datepicker的dateFormat選項。您必須使用對應於srcformat但使用正確格式(描述爲here)的格式。在srcformat: 'm/d/Y'情況下,你應該使用dateFormat: 'm/d/yy',而不是你在你的jsfiddle demo使用dateFormat: 'yy-m-dd'

The modified demo現在工作正常。

+0

謝謝奧列格。我已經改變了代碼如下。我的山口模型是 可編輯:真,格式化器: '日期',formatoptions:{ srcformat: 'M/d/YH:I:S' newformat: 'DMY' }, datefmt: 'DMY' , editoptions:{dataInit:initDateEdit}, searchoptions:{dataInit:initDateSearch} }並在initDateEdit函數中刪除了格式化程序選項並給出dateFormat:'dd-M-yy',如您的示例中所示。但我仍然得到錯誤。 – user1447718

+0

只有當我添加一個新的報告並選擇一個日期並點擊提交時,纔會出現錯誤。在添加對話框中,它顯示正確的日期,但是當我提交時,它在jqgrid中顯示這個錯誤。 – user1447718

+0

有人請幫忙。我發現這與jquery包含的東西有關。這是我需要包含的文件的正確順序嗎? 的jquery-UI-1.8.2.custom.css ui.jqgrid.css 的jquery-1.9.1.min.js 的jquery-UI-1.9.2.custom.min.js grid.locale-en.js jquery.jqGrid.js jquery.fmatter.js 我是否缺少任何文件? plz幫助。 – user1447718