Javascript 带有Jquery选项卡和jqgrid的Jquery日期选择器问题

Javascript 带有Jquery选项卡和jqgrid的Jquery日期选择器问题,javascript,jquery,jsp,jqgrid,datepicker,Javascript,Jquery,Jsp,Jqgrid,Datepicker,我有一个有标签的JSP页面。每个选项卡加载一个jqgrid(在所有三个选项卡中加载相同的JSP)。我在jqgrid中有一个过滤器,对于日期字段,我使用了一个日期选择器 datepicker在第一个选项卡中运行良好,但当我在其他选项卡中尝试在datepicker中点击“Prev”/“Next”时,它会跳到1900年。请参阅以下图片: 日期选择器在第一个选项卡中按预期工作: 在第二个选项卡中点击prev时,日期选择器跳至1899: 我尝试在jquery-ui-1.10.0.custom.js中调

我有一个有标签的JSP页面。每个选项卡加载一个jqgrid(在所有三个选项卡中加载相同的JSP)。我在jqgrid中有一个过滤器,对于日期字段,我使用了一个日期选择器

datepicker在第一个选项卡中运行良好,但当我在其他选项卡中尝试在datepicker中点击“Prev”/“Next”时,它会跳到1900年。请参阅以下图片:

日期选择器在第一个选项卡中按预期工作:

在第二个选项卡中点击prev时,日期选择器跳至1899:

我尝试在jquery-ui-1.10.0.custom.js中调试代码

对于这两种情况,我得到了以下输出:

第一个选项卡:

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();
    });
};

我找到了解决我问题的办法。问题的根本原因是,当在单击第二个选项卡时加载网格时,第一个网格已经存在于DOM中,这导致了所有问题。所以我在加载网格之前所做的就是调用gridDestroy来销毁DOM中存在的所有网格-

$("[id^=dasWorkQueueGrid_]").jqGrid('GridDestroy');
  • 我使用jquery选择器中的通配符来标识所有网格
然后加载网格:

$("#dasWorkQueueGrid_" + activeTabId).jqGrid({
   *** Grid Code ***
    });  

是否可以为每个选项卡中的每个日历实例指定不同的id?可能是一个conflict@geedubbid是动态分配的。下面是我的jqgrid专栏:'code'{name:'vpReportDate',index:'vpReportDate',datefmt:'m/d/Y',sorttype:'date',width:65,searchoptions:{dataInit:showDatePicker},sortable:true}函数showDatePicker(elem){$(elem).datepicker({dateFormat:'mm/dd yy',changeYear:true,changeYear:true,changeMonth:true}).change(函数(){(“#dasWorkQueueGrid$”+activeTabId)[0].triggerToolbar();});};请编辑您的问题以包含其他信息
$("#dasWorkQueueGrid_" + activeTabId).jqGrid({
   *** Grid Code ***
    });