7

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

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

You'll see I've set the year range, so that the by default when you click on the input it will open it up on 1994, but if you then click on any of those dates, e.g. 3rd Sept, it'll actually put it in the input as 2012 still, rather than the year that is selected in the drop down menu.

How can I make it so that it uses the correct year without having to change the drop down and then change it back again?

Cheers.

4

3 回答 3

9

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

试试这个...

function loadDatePicker() {
    $('.datePicker').datepicker({
        dateFormat: 'yy-mm-dd',
        changeYear: true,
        changeMonth: true,
        yearRange: "-18:-12",
        defaultDate:"-18y-m-d"  // Relative year/month/day
    });
}
于 2012-09-13T14:40:11.457 回答
5

很奇怪,但添加defaultDate:"1994-01-01"到日期选择器选项似乎可以解决它。

小提琴

于 2012-09-13T14:00:46.717 回答
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

我希望我很清楚

于 2012-09-13T14:26:40.230 回答