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; } } });
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