jQuery – comment modifier les parameters Datepicker après son initialisation

Je voudrais me lier à la fonction “onSelect” initialisée datepicker.

J’ai essayé de trouver une solution sur le Web, mais sans succès.

Tout le monde peut me dire comment le faire?

Vous pouvez simplement utiliser le setter

 $('#datepicker').datepicker(); $('#datepicker').datepicker("option", "onSelect", function(){alert('hi')}); 

violon ici http://jsfiddle.net/nhmsZ/

Tout d’abord, la réponse de Nicola est correcte et m’a aidé. Je trouvais quelques articles liés qui ne résolvaient pas vraiment mon problème.

J’écris ceci pour développer la réponse existante. Si vous utilisez un framework limitant votre capacité à contrôler l’ordre d’exécution de votre JavaScript, par exemple, Zend Framework, vous devrez peut-être activer cette option de liaison avec un délai.

  $(document).ready(function() { function imahackfunction() { $('#startdate').datepicker('option', 'onSelect', function () { alert($('#startdate').val()); }); } setTimeout(imahackfunction, 2000); }); 

Ce qui précède a fonctionné pour moi car j’ai deux $(document).ready(function() { blocs, l’un que j’ouvre selon moi, l’autre “injecté” par le framework qui instancie le sélecteur de date.

Ce que je me demande, c’est pourquoi le datepicker ne déclenche pas simplement l’événement change sur l’entrée associée à la propriété altField

J’ai trouvé que les solutions ci-dessus ont causé des problèmes dans mon cas. Définir onSelect après que le sélecteur de date a déjà été initialisé semble provoquer la réinitialisation du sélecteur de date. Cela peut ne pas être souhaitable.

Si vous rencontrez des problèmes, il peut être nécessaire de passer par la porte arrière. Cela pourrait poser des problèmes de compatibilité lorsque JQUI est mis à jour, mais si vous êtes prêt à gérer cela, alors ce code pourrait vous aider …

 var inst = $.datepicker._getInst($('#startdate').get(0)); inst.settings.onSelect = function (dt) { // your code here };