0

我在网站上使用 mobiscroll 作为日期输入的方法。滚动条是这样启动的:

$(function(){
var curr = new Date().getFullYear();
$('#date').scroller({
    preset: 'date',
    height: 30,
    width: 20,
    theme: 'default',
    display: 'inline',
    mode: 'scroller',
    dateOrder: 'MD ddyy',
    startYear: curr,
    endYear: curr + 3,
    minDate: new Date(),
    showLabel: false,
    onChange:function(){ upDATE(); }
});    
$('#date').scroller('setValue', [11,9,'2012']);

如您所见,它以最短日期(今天)启动。当用户尝试从 2012 年 12 月滚动到 1 月时,就会出现我的问题。您会期望这一年会提前到 2013 年 1 月,但事实并非如此。相反,它会回到当年的第一个有效日期。这不是很直观。

有谁知道如何使滚动条按预期运行?

4

1 回答 1

0

如果我理解正确,您想滚动月份……一旦月份到 12 月,然后您尝试滚动过去 12 月,它应该切换到 1 月并增加年份?如果是这种情况,那么我认为 Mobiscroll 不会那样工作。它的工作方式似乎是您独立选择月份、日期和年份。


如果我无法理解您的问题,那么我建议设置 minDate 和 maxDate 并查看是否有帮助(请注意,月份索引为零):

 minDate: new Date(2000, 0, 1),
 maxDate: new Date(2020, 11, 31),

另外,我认为它已经默认为当前的实际年份,因此除非您想要不同的年份,否则我会删除 startYear 。


编辑:如果上个月是 12 月,新月份是 1 月,您可能可以使用 OnChange 事件和 SetValue 方法来增加年份,如果上个月是 1 月,新月份是 12 月,则减少年份。等等。请参阅http://docs.mobiscroll.com/mobiscroll-core。不过,这似乎确实有很多额外的工作和开销。

于 2012-11-30T20:58:14.433 回答