Même si je sais que cela a déjà été acceptée, voici mon élargi solution basée sur Samy Zine de l'idée. Ce fut à l'aide de jQuery 1.6.3 et jQuery UI 1.8.16, et a travaillé pour moi dans Firefox 6.
$('.ui-datepicker-current').live('click', function() {
// extract the unique ID assigned to the text input the datepicker is for
// from the onclick attribute of the button
var associatedInputSelector = $(this).attr('onclick').replace(/^.*'(#[^']+)'.*/gi, '$1');
// set the date for that input to today's date
var $associatedInput = $(associatedInputSelector).datepicker("setDate", new Date());
// (optional) close the datepicker once done
$associatedInput.datepicker("hide");
});
Vous pouvez également blur()
le $associatedInput
et de se concentrer sur la prochaine entrée/sélectionner dans votre page, mais ce n'est pas trivial à faire de façon générique, ou est spécifique à l'implémentation.
Comme un exemple, j'ai fait ça sur une page que je travaillais sur les tables utilisées pour la mise en page (ne me lancez pas, je sais que c'est une mauvaise pratique!):
$associatedInput.closest('tr').next('tr').find('input,select').first().focus();