[英]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.