2017-10-09 5 views
3

私はinputのタイプdateを持っています。これはjQueryのdatepickerを使用しています。そしてドキュメントから、年の範囲がデフォルトであることがわかります:c-10:c+10これは、現在選択されている日付の過去10年間と将来10年間を表示します。jQueryのカレンダーのページ数の制限

これは問題ではありません。私はデフォルトの位置からさらに多くのオプションを持つことができます。私は既にプラグインをyearRange:"c-20:c+20"に変更しようとしましたが、動作しませんでした.10 + 10のページネーションを維持しました。私はすでに次のソリューションを試しました:

$(".selector").datepicker({ 
    yearRange: "2002:2012" 
}); 

これはうまくいきませんが、これは私が探しているものではありません。私はすでに、次のいずれかを試してみました:

$(".selector").datepicker({ 
    minDate: new Date(1990, 1 - 1, 1) 
}); 

しかし、また、動作しませんでした、動作がまだc-10:c+10ました。

答えて

0

今日の日付から-10または+10以外の範囲を設定しようとしています。そうですか?そのオプションは、文字列がかかるため

、カスタム範囲を作成するために、1を構築することができます:

var earliest_date = new Date().getFullYear() - 20; 
var latest_date = new Date().getFullYear() + 20; 

// date_range will be 1997:2037 
var date_range = earliest_date + ':' + latest_date; 

$(".selector").datepicker({ 
    yearRange: date_range 
}); 

をうまくいけば、このことができます!

更新:予想通り

私はjsFiddleに気づいたが、改ページは2037年12月を過ぎてか前1997年1月に行くからユーザーを防止し、振る舞い、まだユーザーは手動で入力するに任意の日付を入力することができます。

これをやめるには、yearRangeの代わりにminDatemaxDateと設定します。

var earliest_date = new Date(new Date().setFullYear(new Date().getFullYear() - 20)) 
var latest_date = new Date(new Date().setFullYear(new Date().getFullYear() + 20)) 

//var date_range = earliest_date + ':' + latest_date; 

$(".selector").datepicker({ 
    minDate: earliest_date, 
    maxDate: latest_date 
}); 

I've updated the jsFiddle.

+0

完璧なソリューションではありませんが、私はまた、それがトリックを行うと、私が実装し始めたことを考えていたソリューションです。私はあなたの答えを受け入れるでしょう –

+0

ありがとう、私の最初の投稿よりも私の更新された答えを参照してください、より適切かもしれません。 –

+0

その解決策は私のカレンダーでは機能しません...私のカレンダーの問題は、たとえば、自分の誕生日を12-09-1950に設定したいという年を選択できることです。あなたのソリューションでカレンダーを開くと、私が見る年は-10〜+ 10の範囲になり、最初から読み込まれないため残りを読み込む必要があります。 yearRangeの場合は、問題はyearRangeの今日の日付の制限をインスタンスに追加することです。 –

関連する問題