Edited at

pickadate.jsで年をプルダウンで変更できるようにしてもMAX11年の範囲でしか選べないので選べるようにする

More than 1 year has passed since last update.

以下のように現在日の30年先まで選べるように指定しても....

$('.datepicker').pickadate({

max: moment().add(30,'year').toDate(), // 30年先
selectYears: true
});

現在の選択年のプラマイ5年の範囲でしか選択できない...

pickadateのコード調べたところ、以下箇所で制限してる

https://github.com/amsul/pickadate.js/blob/0d87d916a5d56284aa4b0d7fc9e725db1ea4bf72/lib/picker.date.js#L1091-L1132

単純な方法として、以下のように修正すると指定したmax日が上限になり、プルダウンの選択肢も省略されない

https://github.com/amsul/pickadate.js/blob/0d87d916a5d56284aa4b0d7fc9e725db1ea4bf72/lib/picker.date.js#L1130

- max: highestYear,

+ max: maxYear,

もしくは現在選択されてる日に対し前後5年の制限を設けてるようなので、これを20年とか大きい値にしても解決できる

https://github.com/amsul/pickadate.js/blob/0d87d916a5d56284aa4b0d7fc9e725db1ea4bf72/lib/picker.date.js#L1097

- numberYears = settings.selectYears === true ? 5 : ~~( settings.selectYears / 2 )

+ numberYears = settings.selectYears === true ? 20 : ~~( settings.selectYears / 2 )