ChiperSoft/Kalendae — Issue #3: Selecting a date many years in the past is hard
Author: maelstrom
Created: 2012-03-08 05:52:49+00:00
State: open

While this calendar widget is brilliant for selecting dates near to the current date/initial date, it is almost impossible to select dates multiple years in the past. This removes Kalendae as an option for date of birth inputs, for example. I do not know the best way of solving this, but I can provide examples of how other calendar widgets solve it.

The jQuery UI calendar has 'changeMonth' and 'changeYear' options: http://jqueryui.com/demos/datepicker/#dropdown-month-year . Unfortunately, the jQuery UI picker is broken in that it is not easy to select a date more than 10 years in the past/future, and it is done in a really non-obvious manner - requiring multiple uses of a dynamic select box which has no indication that it is dynamic. The fact that a select box is even dynamic is a bit strange in the first place.

The MonkeyPhysics Mootools date picker solves this in another way: http://www.monkeyphysics.com/mootools/script/2/datepicker#examples . By clicking on the month/year text up the top, a month selection page is shown, showing all the months in the year. Clicking the year text shows a year selection page, showing all the years in the decade. There may even be a century page, where you select a decade, but I am sure you see the pattern now! The problem with this approach is that it is again not obvious. There is no indication that the month/year text is clickable, or that clicking that text 'zooms out' the date picker to a higher level. While the concept is very neat, its implementation leaves something to be desired.

Other widgets solve this by using text inputs for the year, but that is fairly ugly. It has other issues, such as people typing in invalid years and the correct actions to take around that.

Again, I do not know the correct answer for this problem, but I am happy to work through ideas with you. Once a solution is decided upon, I can implement it and submit a pull request for inclusion, if that would be helpful.

Thanks for making such a good looking, functional, and sensible widget!