簡體   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