View
 

Datepicker

Page history last edited by Hans Hillen 3 months, 4 weeks ago

type: widget

release: 0.0

status: in planning

demo/documentation: http://jqueryui.com/demos/datepicker/

refactor prototype: http://view.jqueryui.com/datepicker/datepicker-rewrite/index.html

 


 

1 - Description:

 

This is a brand new planning page to discuss the code refactor of the current datepicker plugin:

http://jqueryui.com/demos/datepicker/

 

To have a fresh start on the planning on this refactor, the older wiki page that covered current and future datepicker and calendar ideas is archived here: DatePickerCalendar

 

The specific code and functionality changes we want to address in this refactor are:

  • Refactor the code to use the widget factor and follow the jQuery UI API

  • Use the new jQuery Globalization official plugin for i18n and l10n: https://github.com/jquery/jquery-global

  • Improve datepicker positioning/z-index issues in dialogs and overlays, especially in IE 

  • Add the ability to customize the buttons in the bottom button bar. This would allow users to add a "clear form" button, shortcuts like "today" or "next delivery date". This would be similar to the dialog widget. I'd imagine it would looks something like this:

    $('.selector').datepicker({

      buttons: {

        'clear': function(event, ui){

          $(this).val('');

        }

      }

    });

 

Sampling of feature requests that we might want to consider adding or accomodating as an extension to core picker:

  • Show week numbers - worth including?

  • Select multiple days on a calendar

  • Select a range on a calendar

  • Disable list of specific dates or days of the week

  • Highlightlist of specific or days of the week (maybe with an optional custom class)

  • Assign custom events to days (use case: inline datepicker with tooltips on days)

  • Allow datepicker to show on hover or allow this to be customised in the showOn option to accept any event.

  • Add time selection.
  • Handle all new HTML5 date and datetime types:
    • date
    • datetime
    • month
    • week
    • time
    • datetime-local

 

Existing Refactors

 

 

2 - Visual Design:

 

 

 


 

 

3 - Functional Specifications/Requirements:

 

Options:

  • disabled (inherited from widget factory)

  • datepickerClass (string, default: null)

    • The css className to be added to the widget element wrapper

  • hide (string, default: null)

    • The effect to be used when hiding the datepicker 

  • max (date, default: null)

    • The maximum selectable date by the datepicker. Dates greater than max will not be enabled for selection.

  • min (date, default: null)

    • The minimum selectable date by the datepicker. Dates less than min will not be enabled for selection. 

  • position (position options, default: { my: 'left top', at 'left bottom' })

    • The position of the datepicker widget relative to the input

  • show (string, default: null)

    • The effect to be used when showing the datepicker 

  • value (date, default: null)

    • The currently selected date 

 

Methods:

  • destroy (inherited from widget factory)
  • disable (inherited from widget factory)
  • enable (inherited from widget factory)
  • option (inherited from widget factory)
  • widget (inherited from widget factory)
  • close
    • Programmatically close the datepicker. Use the open method to open it again.
  • open 
    • Programmatically open the datepicker. Use the close method to open it again.
  • value
    • Get or set the value, bounded by min and max options

 

Events:

  • close
    • This event is triggered when the datepicker is closed
  • open 
    • This event is triggered when the datepicker is opened 

 

Globalization:

 

 


 

4 - Markup & Style:

 

4.1 Initial markup examples

 

<input type="text" name="myDatepicker">

 

<input type="date" name="myDatepicker" min="1970-01-01" max="2020-12-31" value="2009-05-22">
 

4.2 Recommended transformed HTML markup

 

(The HTML markup structure and classes that will be used by the scripts in the enhanced version) 

 

4.3 Accessibility recommendation

 

(Detailed recommendations for ARIA, HTML markup, CSS and javascript that will contribute to universal access and full section 508 accessibility for screen readers, mobile devices and any other devices) 

 

Issues with current datepicker:
  • focus is indicated using color alone
  • the next/prev month icons are invisble in high contrast mode, not indication of focused day is available.
  • thecontrols/links in the date picker do not recieve programmtaic focus.
  • table caption not explictly associated.
  • Expansions for day abbreviations not provided
  • (1194.21.a) Keyboard navigation and selection not fully supported in popup version.
  • (1194.22.g, 1194.22.h) Row and column headers (Its not clear to me whether this makes sense for the datepicker since its not really a data table).

 

ARIA and Structure

 

The date picker UI is created through three separate templates:

  • #ui-datepicker-tmpl: The outer template for the entire date picker, contains the other two templates
  • #ui-datepicker-title-tmpl: The datepicker title 
  • #ui-datepicker-grid-tmpl: The actual date grid 

 

Reason for separating templates: Refreshing the entire datepicker during interaction confuses screen readers, specifically because the date picker title is marked up as a live region and will often not be announced if it's destroyed and recreated (as opposed to having its text contents change). Additionally, with a single template approach, clicking the "prev" and "next" links would lead to the entire template to being refreshed. The would cause a loss of focus because the focused link itself would be removed as well. Separating the templates gets rid of these accessibility issues, and also allows developers to modify parts of the datepicker without having to duplicate the entire template.

 

Template Details:

 

The #ui-datepicker-tmpl template contains the outer date picker structure, including any controls that appear before or below the date grid (e.g. prev, next, today, done).  

 

The #ui-datepicker-grid-tmpl template only contains a span with the grid title (usually the month and year currently shown).

 

The #ui-datepicker-grid-tmpl template uses the following structure and attributes:

  • <table class="ui-datepicker-calendar"> 
    • role="grid"
    • tabindex="0" 
    • aria-activedescendant 
    • aria-readonly="true"
    • aria-labelledby="<id of title element>" 
    • <tr>
      • role="row"
      • <th> (in the column header row)
        • role="columnheader"
      • <td> (in body rows)
        • role="gridcell" 
        • aria-selected="true/false"
        • aria-disabled="true/false" 
        • id (each cell is given a unique ID based on the date picker's ID)
        • <a> (for selectable cells), contains corresponding day number
          • tabindex="-1"
          • data-timestamp="<timestamp>"
          • <span class="ui-helper-hidden-accessible">, today</span> (for the day representing the current day) 
        • <span> (for non-selectable cells), contains corresponding day number

 

Keyboard / Focus Management

  • The date grid only takes up one tab stop, cell navigation can be performed through shortcuts:
    • Left, Down, Up, Right Arrow: move focus between cells. If the beginning or end of the currently shown month ia reached, the grid will automatically update to the adjacent month and focus the correct cell
    • Enter Key: Select the currently focused cell 
    • Home / End: Move focus to first / last day in the month 
    • PgUp / PgDn: Go to  previous / next month
    • Alt + PgUp / PgDn*: Got to previous / next year 

 

* The DHTML Style Guide recommends using Ctrl + PgUp/PgDn for switching between years. While these shortcuts make sense, the problem is that most browsers (being desktop applications themselves) already implement the Ctrl + Page Up and Ctrl + Page Down shortcuts to switch between browser tabs. This causes a shortcut conflict. The implied recommended way to deal with this conflict is to override the browser functionality, making these shortcuts only apply to the web based widget (assuming the shortcut was used within the scope of that widget). However, this approach has some issues in itself (1. better not to override common browser shortcuts. 2. Chrome does not let you override these shortcuts). Because of this the shortcut has been modified to use Alt instead of Ctrl, but a discussion might be in order to come to a more well informed decision.

 

Popup Date Picker

 

The Popup date picker is created when called datepicker() on an text input element (although in the future it should probably be possible to do this on other elements as well, e.g. buttons). In this case jquery.ui.popup is used to associated the date picker with the original element as a popup. The popup will appear when the trigger element is focused or clicked. The trigger element supports the following shortcuts in this setup (defined in jquery.ui.popup):

  • Esc: Collapse the expanded date picker
  • Down / Up Arrow: Move focus from trigger element into the date grid 

 

Besides the regular shortcuts, a popup date picker also supports the following:

  • Enter: The focused cell is selected, focus is moved back to the trigger element, the popup collapses
  • Esc: No selection is made, focus is moved back to the trigger element, the popup collapses
  • Tab: Focus moves to the next element in the tab order, the popup collapses 

 

Current Accessibility Issues:

 

  • Better visual indications for combination of highlights, e.g. when a cell is both selected and today. Also focus highlight always needs to be clearly visible regarless of whether the cell already has other highlights (currently this is achieved using an underline for the number in the focused cells, but outlines might be better. Also the grid itself should get a better highlight while it has focus.
  •  

 

 

4.4 CSS & Theme

 

(Description of the CSS classes to be used for all states, how custom theming and Themeroller support will work.) 

 


 

5 - Latest version of plugin:

 

Old version:

 

 

Refactors:

 

 


 

6 - Open issues being discussed

 

  • What's the best way to deal with backwards compatibility? Should this be built-in for now as deprecated code for removal in 1.next + 1? Or should we provide a compatibility script which means by default if a user upgrades their existing code will break unless they also add this compatility script.
  • Should the datepicker support any DOM element?

 


 

 

 

 

Comments (Show all 63)

kbwood said

at 9:44 pm on May 23, 2009

See an example on the original datepicker at http://keith-wood.name/datepick.html#misc. The same should be possible with the current UI datepicker.

kbwood said

at 9:50 pm on May 23, 2009

For backwards compatibility I would prefer a separate compatibility script. This would remove unnecessary code from the head version and would encourage users to migrate. Of course, there would have to be ample warnings and documentation to inform people of the differences and ease their upgrade path.

For other DOM elements, what is the purpose of attaching the datepicker to other than an input field, a division or span?

John Worrall said

at 6:28 pm on Jun 10, 2009

Would it be possible to add to the DatePicker the ability to select Time as well?

Ca-Phun Ung said

at 2:54 am on Jun 11, 2009

I think this could be implemented as a combo widget. There is a time picker planned and the spinner may also support time. So in theory you could have both the datepicker and spinner acting upon the same input element to enhance functionality.

Ca-Phun Ung said

at 2:51 am on Jun 11, 2009

Some recent feedback about needing datepicker improvements:

http://groups.google.com/group/jquery-ui/browse_thread/thread/afe5816aaf1bd19d

Apart from complaints about needing more tuts and demos, which we know is lacking, I think the jist of the above discussion is:

* Should we change the formatDate option so it's more inline with PHP's Date function
* Should we make the callback parameters more consistent? i.e. onSelect and onClose has dateText (string) but beforeShowDay has date (date object)

Jörn Zaefferer said

at 6:02 am on Jul 8, 2009

This depends on Marc calendar engine, right?

Scott González said

at 8:09 am on Jul 8, 2009

That's the plan. Here's the code: http://github.com/1Marc/calendar-engine/tree/master

Ca-Phun Ung said

at 8:56 am on Jul 8, 2009

Sorry for my ignorance but I did not realise the plan would be to use Marc's calendar engine. Could we document this?

Ca-Phun Ung said

at 7:21 am on Jul 14, 2009

So I don't waste my limited time could we please be more specific on what the plan is? If we use Marc's calendar engine could I deduce that we won't be needing much of the existing datepicker code, hence better to start from scratch rather than refactoring?

Scott González said

at 8:10 am on Jul 14, 2009

The plan is to review Marc's calendar engine to see if we want to use it (my guess is yes, since he specifically wrote it to address all of the issues of our current datepicker). If I was working on this, I'd be starting from scratch.

Chiefs said

at 2:15 pm on Jul 15, 2009

I really like that widget. Question for u: how can I call t popup from a div, a link etc. let's say "Choose Date" or something. Do I always need to call it from input type="date"?

Blaz said

at 3:31 am on Aug 4, 2009

Most of the users with more experiences probably already know this but
others can have problems when implementing datepicker to ASP.NET
controls, for example textbox (especially if they are inside other
control - web form, repeater).



This is a solution somebody posted on asp.net forums:

1.) "Change the TextBox's CssClass property to "dateTextBox". Then,
use exactly this JavaScript (remove the other inline script in that
area so there are no extraneous errors):"

1.) (inside web form, control, etc.)
<script type="text/javascript">
$(document).ready(function() {
$('.dateTextBox').datepicker();
});
</script>

2.) if you do not have web control. You also don't need the css.

<script type="text/javascript">
$(function ()
{$('#date').datepicker();}
);
</script>


also you must have in masterpage the following code:
<link type="text/css" href="../CSS/jquery-
ui-1.7.2.calendar.css"rel="stylesheet" />
<script type="text/javascript" src="../JS/jquery-1.3.2.min.js" ></
script>
<script type="text/javascript" src="../JS/jquery-
ui-1.7.2.custom.min.js"></script>

<script type="text/javascript">
$(function(){

// Datepicker
$('#datepicker').datepicker({
inline: true
});

//hover states on the static widgets
$('#dialog_link, ul#icons li').hover(
function() { $(this).addClass('ui-state-hover'); },
function() { $(this).removeClass('ui-state-hover'); }
);

});
</script>

There can be better options to do this. Also you must notice that this
don't work in IE ("appearing" effect) as same as is working if you
have input type on page without any controls.

Any additional comments are welcome.

Jörn Zaefferer said

at 2:32 pm on Sep 1, 2009

Of the options on the current datepicker, appendText is a good candidate to be dropped. It specifies the text to append after the input element. That is really easy enough do to with regular jQuery methods and outside the scope of the datepicker plugin.

Jörn Zaefferer said

at 2:39 pm on Sep 1, 2009

The showOn, buttonText, buttonImage, and buttonImageOnly options could be refactored. Instead of exposing all these options, let the user create the input and pass that along for binding a click event; or open the datepicker on focus of the input by default, and let the user specify other events to open the picker, via datepicker("open").

Jörn Zaefferer said

at 2:41 pm on Sep 1, 2009

The animation-options are odd at best. You have to set duration to an empty string (or any falsy? not sure) to disable animations. Then there is also showAnim and showOptions...

Jörn Zaefferer said

at 2:42 pm on Sep 1, 2009

numberOfMonths, stepMonths and showCurrentAtPos are certainly useful, but the names don't suggest any relation between those, while they are actually closely related.

Jörn Zaefferer said

at 2:50 pm on Sep 1, 2009

The altField option can be easily implemented using the select-callback.

Jörn Zaefferer said

at 2:54 pm on Sep 1, 2009

onChangeMonthYear, onSelect and onClose need renaming.

Jörn Zaefferer said

at 2:58 pm on Sep 1, 2009

The isDisabled method needs to be replaced with option-disabled. enable/disable methods, too.

get/setDate should be merged into one method.

show/hide could be renamed to open/close, to be more consistent with dialog.

The dalog-method is odd...

Jörn Zaefferer said

at 2:59 pm on Sep 1, 2009

The beforeShow API is, well, odd. Returning arrays with two elements??

Jaggi said

at 10:48 am on Sep 2, 2009

i'd like to see some access to some of datepickers date functions. This came about when i needed to do something with max date. I had to do it manually in the end but basically what i did was have a start date and end date (range) and i set the minDate of end date to the value returned by start date by doing ($('#startDate').datepicker('getDate') ) then i needed to set the maxDate of the end date to two months in the future of minDate. There was no easy way to do this with jquery so had to create a function to do using the date modifiers but we can change the date pretty easily on maxDate by doing maxDate: '+2'; what i'd like to be able to do is something that would support something like:

maxDate: $('#startDate').datepicker('getDate')+ '+1m'; (this isn't actually a proper way it should or can work i'm just trying to show it in laymens terms).

it might be done by being able to access one of datepickers actual functions that works it out and have the ability to set the date to start from but i think it'd be useful all the same. What i actually discovered here however i would consider a bug to be honest, maxDate works out the date based off todays date but doesn't take into account values set by minDate/defaultDate which i think it should as we're kinda already telling you where to take the date from.

Jörn Zaefferer said

at 2:43 pm on Sep 2, 2009

This should be trivial with Marc's calendar engine. I'll ping Marc about it.

aurelien gerits said

at 9:46 am on Sep 30, 2009

Hello, after building a site into several languages.
I found that using $. Datepicker.setDefaults ($. Datepicker.regional ['en']); dynamic does not work very well with the "fr".
The locale does not work with English.

Example in PHP:

if ($ lang == 'en') (
print '$.datepicker.regional [ "en"]';
) elseif ($ lang == 'fr') (
print '$.datepicker.regional [ "fr"]';
)

My files for english params :

/* English initialisation for the jQuery UI date picker plugin. */
/* Written by Gerits Aurelien. (gerits point aurelien at gmail point com)*/
jQuery(function($){
$.datepicker.regional['en'] = {
closeText: 'Done', // Display text for close link
prevText: 'Prev', // Display text for previous month link
nextText: 'Next', // Display text for next month link
currentText: 'Today', // Display text for current month link
monthNames: ['January','February','March','April','May','June',
'July','August','September','October','November','December'], // Names of months for drop-down and formatting
monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], // For formatting
dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], // For formatting
dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], // For formatting
dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], // Column headings for days starting at Sunday
dateFormat: 'mm/dd/yy', // See format options on parseDate
firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...
isRTL: false // True if right-to-left language, false if left-to-right
};
$.datepicker.setDefaults($.datepicker.regional['en']);
});

David Petersen said

at 7:11 pm on Feb 27, 2010

I have made a lot of progress in refactoring the datepicker code. Got it using the widget factory and Marc's calendar. Will post the code after the switch to github, (gives me more time to clean up the code)

One question I had while working through that code was, is datepicker('dialog') really necessary? Doesn't that option just create glorified inline datepicker that is absolute positioned on the screen? Seems like with the new position plugin there is no need to support this as an option of the datepicker. It could easily be handled by doing this:

$('#inl2').datepicker({
select: function(){
// do something with the selected date then hide it
$(this).hide();
}
}).position({my:'center', at:'center', of:window});

Is it worth the extra code needed to support it as an option when it is so easy to do it outside the plugin, also considering how little use this option really gets?

Scott González said

at 9:47 pm on Feb 27, 2010

Hey David,

As a general rule you should leave out everything that's not needed by 90% of the users. I'd start with the essentials and then we can figure out which options we want built in, which options should be built as extensions and which options should be left out.

kbwood said

at 3:14 am on Mar 7, 2010

I've done a refactor of the datepicker to conform to the current widget standard. It's available for review at https://jquery-ui.googlecode.com/svn/branches/labs/datepicker2.

As well as converting it to a widget, I've added the following:

* a templating ability to allow the end-user more control over the appearance of the datepicker,

* a command structure to allow end-users to add/change command buttons on the datepicker,

* common date routines for general use,

* use of the position plugin for placement,

* an extension module (jquery.ui.datepicker.ext.js) with less common usage requirements.

Please have a look through the demos and comment...

Richard D. Worth said

at 3:57 am on Mar 25, 2010

* yeah for position :)

* widget extensions are cool but not if they're done in a widget-specific way. That is, we don't want the datepicker building in a widget extension mechanism because all widgets have a need to be extensible, and that should be done in common and standards ways. If you have found some success or challenges in this area, we'd love to hear about them and discuss them. Also, in order to discuss some less common usage requirements, we need to nail down what are the most common usage requirements, and more than that what should be built in (and how) for meeting those requirements. That's what this page is all about at the moment. So refactors and sample implementations are great, if they're an aid in that discussion.

Thanks for providing any and all details you can. That will go a long way in helping others appreciate and evaluate the work you've done and how it might be used. If this comment thread doesn't fit it all, please do a blog post or start a discussion thread on the Developing jQuery UI Forum and link to from here.

Also, I'm not able to view a bunch of the demos at the url above because the svn:mime-type isn't set on about half the files. Thanks.

Richard D. Worth said

at 3:57 am on Mar 25, 2010

Hey Keith. Thanks for what you've done and for sharing it. It would be great if you could document some specifics on the points above so each person that might look into these changes doesn't have to figure them out through the implementation. Not full on documentation, but just what your design and thinking is. We need to be able to discuss this at a high-level design and spec level separate from implementation, and that's hard to do with bullet points, and can't be done by reverse engineering a sample implementation. Some questions that come to mind that may help you provide more detail:

* are you using a templating engine? have you looked at jQuery's which is in dev at http://github.com/jquery/jquery-tmpl and being discussed at http://forum.jquery.com/topic/jquery-templates-proposal . Also, what about using hooks with overridable functions for different parts of the control?

* shouldn't buttons be part of the templating? Or what about just a button pane that the user appends buttons to with jQuery? What is this command structure and why is it needed? jQuery is really good at manipulating dom elements and we don't want to re-build that into each widget's api for specific types of elements. Containers, hooks, and events go a long way.

* have these common date routines been abstracted into a low-level, reusable library? Is there any documentation? Is it jQuery-specific, library-agnostic? Are there other libraries like this? Does this one do more/less? Is it better? What does it do and decidedly not do? Is it extensible? Does it need to be?

Richard D. Worth said

at 4:10 am on Mar 25, 2010

Ok, we've got our existing widget and it looks like two refactors (David's and Keith's). As Scott pointed out above (Feb 27), let's get down to the fundamentals. So instead of worrying about refactoring and backwards-compatibility at this point, let's nail down the absolute minimum basic specs and features for a jQuery UI Datepicker and how it should be powered (Marc's engine, Keith's, some other?) and built (divs, tables, templates, buttons). That means fleshing out sections 3 and 4 above. The work that's been done on refactors, just as the existing component and its usage, will be an aid in this work and discussion, but we need to start the design from a zero base. Thanks everyone.

Jörn Zaefferer said

at 11:52 am on Apr 7, 2010

I've added a placeholder for the functional spec. Hopefully enough for getting you started.

Motty said

at 11:11 am on Jun 4, 2010

I would like an alternate layout like AnyTime (http://www.ama3.com/anytime/)... it's more user friendly I think and saves me from clicking like mad (or even typing LOL) to get to another year.

Met00 said

at 5:44 pm on Jul 21, 2010

"Improve datepicker positioning/z-index issues in dialogs and overlaysImprove datepicker positioning/z-index issues in dialogs and overlays"

Solution:

$(function() {
$.maxZIndex = $.fn.maxZIndex = function(opt) {
/// <summary>
/// Returns the max zOrder in the document (no parameter)
/// Sets max zOrder by passing a non-zero number
/// which gets added to the highest zOrder.
/// </summary>
/// <param name="opt" type="object">
/// inc: increment value,
/// group: selector for zIndex elements to find max for
/// </param>
/// <returns type="jQuery" />
var def = { inc: 10, group: "*" };
$.extend(def, opt);
var zmax = 0;
$(def.group).each(function() {
var cur = parseInt($(this).css('z-index'));
zmax = cur > zmax ? cur : zmax;
});
if (!this.jquery)
return zmax;

return this.each(function() {
zmax += def.inc;
$(this).css("z-index", zmax);
});
}
$("#datepicker").datepicker({ showButtonPanel: true,
beforeShow: function() {$('#ui-datepicker-div').maxZIndex(); },
dateFormat: 'yy/mm/dd' });

Met00 said

at 7:19 pm on Jul 21, 2010

View it in action here: http://www.wwinfo.com/images/admindesktop-datepicker.png

The page uses
1) jquery UI layout (http://layout.jquery-dev.net/documentation.cfm)
2) jquery datatables (http://datatables.net/)
3) jquery.ui dialog and the datepicker on top of the dialog

Chris Oake said

at 11:39 am on Jan 26, 2011

Hi all, I just joined this board in hopes of finding out if there are any plans to incorporate a date range selection in the datepicker. Something to the effect of what Keith does (http://keith-wood.name/datepick.html - click the "Range" tab). I like the Themeroller and simplicity of the jQuery UI datepicker, but I really needed the range selection so I've already been modifying the current stable version to get what I need. I didn't have to change too much, I added a rangeSelect option and a getDateRange getter. A css class is added to all the dates within the selected date to change the color. Pretty simple really.

Is the range selection something that can be added to the new version, or is even in consideration? I am willing to contribute to help with that. You guys have any thoughts on that?

Scott González said

at 11:49 am on Jan 26, 2011

Datepicker is going to be rewritten with a much cleaner, smaller API (this is part of a larger API cleanup). The new API hasn't been decided yet, so we don't have an official answer at this time.

Adrian said

at 7:38 am on May 12, 2011

It would be nice if there was a way to synchronize the row counts of two independent calendars or at least allow to lock them to the maximum. See http://stackoverflow.com/q/5470805/298479 for a use case where it's needed. Besides that, having a date range picker would be even nicer ;)

Jörn Zaefferer said

at 10:25 am on May 24, 2011

Keith Wood's fork with a datepicker rewrite: https://github.com/kbwood/jquery-ui

Scott González said

at 4:55 pm on Jun 15, 2011

It should be possible to render a Broadcast Calendar with the rewrite. See http://bugs.jqueryui.com/ticket/7479

Richard D. Worth said

at 4:58 pm on Jun 15, 2011

Looking at http://en.wikipedia.org/wiki/Broadcast_calendar which is linked in that ticket, I wonder if the globalization plugin would get involved here. I might think so. Interesting.

Eero said

at 11:08 am on Oct 3, 2011

What do you think of this date picker: http://reaktor.github.com/jquery-continuous-calendar/ ?
It differs from all other extisting ones by having scroll instead of next and previous month buttons (inspired by Alain Cooper).

It works best in use cases where one needs to choose a date near current day, i.e. "next monday" or "last weekend". With traditional date picker seeing previous or next week needs some times an extra click and makes confusing to keep track of weeks relative to current one.

For entering a known date, for example a birthday it's allways easier to just type it in a text field with live validation.

You don't have permission to comment on this page.