Masquer l'interface utilisateur-datepicker-calendrier en fonction d'attribut d'élément

J'ai plusieurs inputs sur ma page, qui ont jQuery UI datepicker widget attaché à eux.

Ce que je voudrais faire est de show/hide la .ui-datepicker-calendar basé sur un data-calendar attribut sur la input élément.

Par exemple:

<input type="text" data-calendar="false" />
<input type="text" data-calendar="false" />
<input type="text" data-calendar="true" />

Ainsi, les deux premières ne devraient pas montrer le .ui-datepicker-calendar, mais la dernière, devrait.

Je pensais que je pouvais tirer parti de la beforeShow événement pour définir l'affichage de l'élément, cependant, au moment où l'événement se déclenche, le .ui-datepicker-calendar n'existe pas encore:

$('input').datepicker({
  beforeShow: function(el, dp) {
    $('.ui-datepicker-calendar').toggle( !$(el).is('[data-calendar="false"]') );
  }
});

J'ai eu un coup d'oeil à des questions similaires, et la réponse est d'utiliser CSS pour cacher la .ui-datepicker-calendar élément:

.ui-datepicker-calendar {
  display: none;
}

Toutefois, cela ne fonctionne pas pour moi que j'ai besoin pour régler l'affichage de la propriété basée sur l'élément de data-calendar attribut.

Est-il un moyen simple pour y parvenir? J'ai eu un coup d'oeil par le biais de la datepicker API mais n'ai pas trouver quoi que ce soit.

Voici une simple base de violon

Voici comment je l'aime à afficher, si données-agenda est fausse

OriginalL'auteur billyonecan | 2013-08-12