在datepicker上显示特定月份而不更改所选日期

时间:2014-04-09 17:40:22

标签: javascript jquery jquery-ui jquery-ui-datepicker

我使用两个日期选择器来选择日期范围,我有以下问题:

当我在 datepicker I 上选择“开始日期”时,我会在第二个上更新 minDate (类似于选择“结束日期”时我更新 maxDate < / em>在第一个)。

问题是,更新 maxDate minDate 会导致更新datepicker。

因此,例如,如果有人在 datepicker II 上浏览数月,然后在 datepicker I 上选择某个日期,则 datepicker II 将刷新并且显示屏返回 datepicker II 上的最后一个选定日期,而不是停留在用户正在浏览的月份。

我已经知道如何通过使用“onChangeMonthYear”选项找出最后一次显示在datepicker上的月份。

问题是如何强制使用datepicker导航到我想要的月份(不实际更改所选日期)。

我真的很感激任何帮助或建议。

代码,根据要求。我正在使用AngularJS,但我想您可以很容易地看到它将如何转换为JQuery:

scope.fromDate.onChangeMonthYear = function(year, month){
    //saving info about date I
};

scope.toDate.onChangeMonthYear = function(year, month){
    //saving info about date II
};

scope.fromDate.onSelect = function(selectedDate) {
    element.find(".date-to").datepicker("option", "minDate", selectedDate);
};

scope.toDate.onSelect = function(selectedDate) {
    element.find(".date-from").datepicker("option", "maxDate", selectedDate);
};

1 个答案:

答案 0 :(得分:1)

根据jquery ui datepicker api参考:

// getter
var minDate = $( ".selector" ).datepicker( "option", "minDate" );

// setter
$( ".selector" ).datepicker( "option", "minDate", new Date(2007, 1 - 1, 1) );

这应该在初始化之后使用,而不重新设置datepicker