jquery datepicker年份范围默认

时间:2012-09-13 13:48:14

标签: javascript jquery jquery-ui

对于JQuery datePicker有一点问题,我怀疑这只是我忽略或错误的设置问题。

如果你看一下这个简单的小提琴:JS Fiddle

你会看到我设置了年份范围,因此默认情况下,当你点击输入时它会在1994年打开它,但是如果你然后点击这些日期中的任何一个,例如9月3日,它实际上将它作为2012年的输入,而不是在下拉菜单中选择的年份。

如何才能使用正确的年份而不必更改下拉菜单然后再将其更改回来?

干杯。

3 个答案:

答案 0 :(得分:8)

正如其他人所建议的那样,你必须设置defaultDate。但是,与其他解决方案不同,您不希望对日期进行硬编码,因为您的下拉列表将在您执行相对列表时经过多年后更新。

试试这个......

function loadDatePicker() {
    $('.datePicker').datepicker({
        dateFormat: 'yy-mm-dd',
        changeYear: true,
        changeMonth: true,
        yearRange: "-18:-12",
        defaultDate:"-18y-m-d"  // Relative year/month/day
    });
}

答案 1 :(得分:5)

很奇怪,但是将defaultDate:"1994-01-01"添加到datepicker选项似乎可以解决它。

Fiddle

答案 2 :(得分:0)

我想我有理由.. 这是因为yearRange:仅限下拉菜单中的范围。 它只是改变了列表。

他们把这件事放在这里......

http://jqueryui.com/demos/datepicker/#option-yearRange [请注意,此选项仅影响下拉列表中显示的内容,以限制使用minDate和/或maxDate选项选择的日期。]

要证明这个..设置日期选择器如下,你会发现所有日期禁用。 因为它看到了我们2012年而不是1994年的压力

$('.datePicker').datepicker({
         dateFormat: 'yy-mm-dd',
         changeYear: true,
         changeMonth: true,
         yearRange: "-18:-12",
         maxDate: new Date(2012,1-1,1)

     });

要解决此问题,您必须使用defaultDate以及minDate和maxDate

我希望我很清楚