jquery日期选择器年份范围默认值

jquery datepicker year range default

本文关键字:范围 默认值 日期 选择器 jquery      更新时间:2023-09-26

JQuery datePicker有点问题,我怀疑这只是我忽略或弄错了一个设置的问题。

如果你看看这个简单的小提琴:JS fiddle

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

我如何才能使它使用正确的年份,而不必更改下拉列表,然后再更改回?

干杯。

正如其他人所建议的,您必须设置defaultDate。然而,与其他解决方案不同的是,您不想硬编码日期,因为您的下拉列表将随着时间的推移而更新,因为您正在创建相对列表。

试试这个。。。

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

很奇怪,但在日期选择器选项中添加defaultDate:"1994-01-01"似乎可以解决这个问题。

Fiddle

我想我明白原因了。。这是因为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

我希望我能清除