jQuery datepicker – change l’affichage de .ui-datepicker-calendar après init

Comment puis-je modifier l’atsortingbut d’affichage css de la classe ui-datepicker-calendar après que le sélecteur de date a déjà été initialisé? J’ai un formulaire html avec une case à cocher sélectionnable à partir de laquelle je veux basculer l’affichage de cette table. J’ai essayé ce qui suit:

Exemple HTML:

-

JS première approche:

   $(document).ready(function() { $("#datefrom, #dateto").datepicker({ dateFormat: "dd.mm.yy", [...] beforeShow: function(input, inst) { if ($("#dateplanedcheck").is(':checked')) { $(".ui-datepicker-calendar").css("display", "none"); }} }); [...] });  

Le beforeShow est appelé, mais le calendrier est toujours affiché.

Deuxième approche JS:

   $(document).ready(function() { [....] $("#dateplanedcheck").change(function() { if ($(this).is(':checked')) { $(".ui-datepicker-calendar").css("display", "none"); } }); });  

Qu’est-ce que je rate? Est-ce que cela fonctionne même avec jQuery? Merci d’avance!

Vous ne voulez donc PAS afficher le calendrier si la case à cocher est cochée?

Il suffit de return false; dans le beforeShow.

 $("#datefrom, #dateto").datepicker({ dateFormat: "dd.mm.yy", beforeShow: function(input, inst) { if ($("#dateplanedcheck").prop('checked')) { return false; } } }); 

http://jsfiddle.net/JzbPD/

Réponse:

Toujours afficher le calendrier mais le rendre invisible:

BeforeShow ne peut pas accéder au calendrier ui-datepicker sur la table car il n’a pas encore été restitué. Appliquez une classe telle que $(inst.dpDiv).addClass('calendar-off') , puis .calendar-off table.ui-datepicker-calendar { display none; } le style .calendar-off table.ui-datepicker-calendar { display none; } .calendar-off table.ui-datepicker-calendar { display none; } comme ceci: http://jsfiddle.net/JzbPD/4