0

日付入力の方法として、Web サイトで 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 を削除します。


編集:おそらく、SetValue メソッドで OnChange イベントを使用して、前月が 12 月で新しい月が 1 月の場合は年を増やし、前月が 1 月で新しい月が 12 月の場合は年を減らすことができます。http://docs.mobiscroll.com/mobiscroll-core。ただし、多くの余分な作業とオーバーヘッドのようです。

于 2012-11-30T20:58:14.433 に答える