JQuery Datetime picker - la Nécessité de choisir le mois et l'année seulement
Je suis passé par ce post jQuery UI DatePicker pour montrer les mois de l'année seulement qui est très utile pour moi dans le but de pirater le datetime picker de l'INTERFACE utilisateur pour l'adapter à ma situation.
Mais comme j'ai plusieurs datetime picker sur le même formulaire, ce qui se passe. Le css display:none
but est de "cacher" les jours de ne pas être montré. Mais si j'ai plusieurs datetime picker sur la même forme, mais un seul, je voudrais faire une de il monthpicker, comment puis-je y parvenir? Avec le css, il rend tous les jours sur l'ensemble datetime calendrier de l'INTERFACE utilisateur disparaître depuis le css va changer l'attribut de la .ui-datepicker-calendrier. Toutes les suggestions sont les bienvenues.
Vous devez vous connecter pour publier un commentaire.
Actuellement, datepicker crée seulement 1 élément par page que tous les "datepicker' entrées à partager, c'est pourquoi la réponse à la question ne fonctionne pas. Le beforeShow événement ne permettant pas l'édition du datepicker élément .addClass() ou .css() (comme la structure de l'élément est actualisé à partir du datepicker script quand il montre.)
Pour contourner ce problème, j'ai trouvé que les événements de focus de l'élément d'entrée s'affiche à exécuter du code après le datepicker est indiqué. C'est une solution simple à un problème frustrant.
Voici mon code:
J'ai utilisé une version légèrement différente du code de Ben posté.
Au lieu de s'appuyer sur les événements de focus, j'ai ajouté
dans le beforeShow méthode et
dans le onClose. Ce qui ajoute et supprime une classe sur la commune div utilisée par tous les datepicker widgets. Le calendrier de la date div peut ensuite être ciblé dans le css à l'aide
Solution précédente ne fonctionne pas avec des formats différents. Aussi setDate ne fait rien dans beforeShow. Bonne façon de le faire sera:
J'ai utilisé parseDate de datepicker pour gérer les différents formats de date et la date de retour du champ defaultDate option.
Nécessaire CSS:
setTimeout(function () { inst.dpDiv.removeClass("ui-monthpicker"); }, 200);
J'ai encore une autre solution basée sur le dessus avec quelques améliorations. Dans mon code HTML, je me cache dans la journée sélecteur en ajoutant ce que je n'ai qu'une sur la page:
J'ai ensuite initialiser mon datepicker comme d'autres l'ont fait et ajouter un peu de code pour le onChangeMonthYear événement:
Remarque: le
Si vous n'ajoutez pas de cela, vous obtiendrez un débordement de la pile parce que cette fonction reçoit un index basé sur 1 mois, mais setDate utilise un normal en fonction de 0 mois.
J'ai fait quelque chose de semblable, mais a fait une autre "version" de la datepicker script et l'a appelé monthpicker, a ses propres sélecteurs CSS et le fichier CSS. Cela signifie que vous peuvent utiliser l'une ou les deux sur la même page.
Ben la solution fonctionne parfaitement, juste un petit changement, j'ai utilisé onChangeMonthYear au lieu de onClose:
Ce code est parfaitement bien fonctionné pour moi: