jQuery UI Datepicker:在当前年份的<select>中显示所有12个月?</select>

时间:2011-02-25 17:19:05

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

我正在使用jQuery UI Datepicker这些选项:

$('#birth_date').datepicker({
        changeMonth: true,
        changeYear: true,
        minDate: new Date(-2206281600*1000),
        maxDate: new Date(1298653687*1000),
        yearRange: '1900:2011'
});

效果很好。月份和年份显示为2个并排<select>框。问题是,我们只在2011年2月。所以当用户输入他们的出生日期,比如12月,那个月还没有。他们必须先选择他们的年份,然后才能选择月份。

我怎样才能显示所有12个月,即使这些月份不是当年的有效选项?

3 个答案:

答案 0 :(得分:2)

对于仍然在寻找的人,我最终使用defaultDate来解决这个问题:

$( ".selector" ).datepicker({
  changeMonth: true,
  changeYear: true,
  minDate: '-100Y', //100 Years Old
  maxDate: '0' //Today
  defaultDate: '-1Y', //Default to One Year Ago to show 12 months
  yearRange: '-100:+0' //Show 100 
});

它仍然限制了日期范围,因此没有人可以在将来选择日期,并且不依赖于用户按特定顺序输入。

答案 1 :(得分:0)

使用numberOfMonths显示所有12个月。

$('#birth_date').datepicker({
    numberOfMonths: 12
});

答案 2 :(得分:0)

您可能在今年中旬将maxDate设置为某些日期。假设您将其设置为2020年10月21日。如果下拉列表中的年份是2020年,则由于maxDate限制,您将无法选择11月或12月。如果将年份更改为2020年之前的任何年份(而非minDate年),则可以选择所有12个月。如果选择“ minYear”,则由于minDate限制,不会显示1月-9月。这是预期的功能。