对于JQuery datePicker
有一点问题,我怀疑这只是我忽略或错误的设置问题。
如果你看一下这个简单的小提琴:JS Fiddle
你会看到我设置了年份范围,因此默认情况下,当你点击输入时它会在1994年打开它,但是如果你然后点击这些日期中的任何一个,例如9月3日,它实际上将它作为2012年的输入,而不是在下拉菜单中选择的年份。
如何才能使用正确的年份而不必更改下拉菜单然后再将其更改回来?
干杯。
答案 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选项似乎可以解决它。
答案 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
我希望我很清楚