【问题标题】:Display specific month on datepicker without changing selected date在日期选择器上显示特定月份而不更改所选日期
【发布时间】:2014-05-23 02:20:17
【问题描述】:

我正在使用两个日期选择器来选择日期范围,我遇到了以下问题:

当我在 datepicker i 上选择“开始日期”时,我在第二个(类似于选择“结束日期”时更新 Mindate Em>,我更新 MaxDate 在第一个)。

问题是,更新 maxDateminDate 会导致 datepicker 刷新。

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

我已经知道使用“onChangeMonthYear”选项找出最后一次显示在日期选择器上的月份的方法。

问题是如何强制 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);
};

【问题讨论】:

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


    【解决方案1】:

    根据jquery ui datepicker api 参考:

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

    这应该在初始化之后使用,不要重置日期选择器

    【讨论】:

    • 我对设置“minDate”没有任何问题。我想以某种方式更改另一个日期选择器上显示的月份,或者阻止它刷新。
    • 只有在再次调用 datepicker 构造函数时才会刷新 datepicker。另外,如果你在两个日期选择器上使用相同的 css 类来执行插件,你会遇到问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    • 2011-12-30
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    相关资源
    最近更新 更多