我的JSP页面有标签。每个选项卡都加载一个jqgrid(在所有三个选项卡中加载相同的JSP)。我在jqgrid和日期字段中都有一个过滤器,我正在使用一个日期选择器。
datepicker在第一个标签中工作正常但是当我尝试在其他标签中的datepicker中点击“上一个”/“下一个”时,它会跳到1900年。请参阅下面的图片:
日期选择器在第一个标签中按预期工作:
日期选择器在第二个标签中点击prev时跳至1899:
我尝试在 jquery-ui-1.10.0.custom.js 中调试代码
/* Adjust one of the date sub-fields. */
_adjustDate: function(id, offset, period) {
var target = $(id),
inst = this._getInst(target[0]);
console.dir(inst);
if (this._isDisabledDatepicker(target[0])) {
return;
}
this._adjustInstDate(inst, offset +
(period === "M" ? this._get(inst, "showCurrentAtPos") : 0), // undo positioning
period);
this._updateDatepicker(inst);
},
我为这两种情况得到了以下输出:
第一个标签:
LOG: {
id : "gs_vpReportDate",
input : [object Object],
selectedDay : 20,
selectedMonth : 10,
selectedYear : 2013,
drawMonth : 10,
drawYear : 2013,
inline : false,
dpDiv : [object Object],
settings : [object Object],
append : [object Object],
trigger : [object Object],
lastVal : "",
currentDay : 0,
currentMonth : 0,
currentYear : 0,
yearshtml : null,
_keyEvent : false
}
第二个标签:
LOG: {
id : "gs_vpReportDate",
input : [object Object],
selectedDay : 0,
selectedMonth : 0,
selectedYear : 0,
drawMonth : 0,
drawYear : 0,
inline : false,
dpDiv : [object Object],
settings : [object Object],
append : [object Object],
trigger : [object Object]
}
为什么会出现这种奇怪的行为?
其他信息: id是动态分配的。
下面是我的jqgrid专栏:
{ name: 'vpReportDate', index: 'vpReportDate',datefmt:"m/d/Y", sorttype:"date", width: 65, searchoptions:{dataInit:showDatePicker}, sortable:true }
function showDatePicker(elem) {
$(elem).datepicker({dateFormat:'mm/dd/yy', changeYear: true, changeMonth: true}).change(function() {
$("#dasWorkQueueGrid_" + activeTabId)[0].triggerToolbar();
});
};
答案 0 :(得分:0)
我找到了解决问题的方法。问题的根本原因是,在第二个选项卡的点击上加载了何时网格,第一个网格已经存在于DOM中,这导致了所有问题。所以我在加载网格之前做了什么我正在调用gridDestroy来销毁DOM中存在的所有网格 -
$("[id^=dasWorkQueueGrid_]").jqGrid('GridDestroy');
然后加载网格:
$("#dasWorkQueueGrid_" + activeTabId).jqGrid({
*** Grid Code ***
});