Jquery ui日期选择器上个月而不是下一个

时间:2017-01-08 21:16:49

标签: javascript jquery jquery-ui-datepicker

我的问题是,在第二次点击输入(至)时,日历会显示下个月。

例如,在第一次点击输入(to)时,日历会显示Jan和Feb(这就是我想要的)。如果我在1月份选择日期,则没有问题。但 1 - 如果我在2月选择日期,则日历显示2月和3月,而不是1月和2月。 2 - 如果我在3月选择一个日期,日历显示3月和4月,而不是feb和march ......等等

https://jsfiddle.net/aminos12/vty1qk7f/

var dateFormat = "mm/dd/yy",
      from = $( "#from" )
        .datepicker({
          numberOfMonths: 2
        })
        .on( "change", function() {
          to.datepicker( "option", "minDate", getDate( this ) );
        }),
      to = $( "#to" ).datepicker({
        numberOfMonths: 2
      })
      .on( "change", function() {
        from.datepicker( "option", "maxDate", getDate( this ) );
      });

    function getDate( element ) {
      var date;
      try {
        date = $.datepicker.parseDate( dateFormat, element.value );
      } catch( error ) {
        date = null;
      }

      return date;

enter image description here jQuery UI版本 - v1.12.1 谢谢你的帮助

2 个答案:

答案 0 :(得分:0)

当您设置为显示多个月时,这是datepicker的默认行为。如果您更改了行为,您可能会遇到第一次没有显示正确的month或者在将来选择日期时必须点击下个月箭头而感到烦恼的问题并打开{ {1}}再次。

特别是对于像旅行社这样的网站,当您想要选择和约会时,这将非常重要。

更好的选择是在其底部显示datepicker按钮,以便日后选择日期,然后又想回到最初的两个月或今天选择时,以便于使用。

这是在选项中使用Today完成的。

showButtonPanel: true

答案 1 :(得分:0)

默认情况下,

Datepicker不会这样做。

如果我理解你的问题,你希望2个月永远是这个月和下个月。如果我在二月选择“来自”的日期,那么当我点击“到”字段时,你仍然想看Jan-Feb,这是正确的吗?这就是Datepicker默认工作的方式。

JSFiddle

$( "#from" ).datepicker({
    numberOfMonths: 2,
});
$( "#to" ).datepicker({
    numberOfMonths: 2,
});

screenshot of working JSFiddle

minDate and maxDate设置最小/最大可选择的日期,而不是最小/最大显示日期。如果您将minDate设置为1月1日,则仅表示您无法选择12月31日。要实际转换显示的月份,请使用showCurrentAtPos。如果您显示2个月,请设置showCurrentAtPos: 0以显示位置0(2中的第一个)的当前月份。请注意,此示例没有意义,因为这是默认行为!