Si je veux afficher le sélecteur de date JQUERY UI en ligne en l'attachant à un DIV comme $("div#someID").datepicker()
- comment accéder à la date choisie? Je suppose que s'il n'est pas lié à un INPUT
, il ne sera pas soumis avec le formulaire.
Je suppose que si je dois le lier à un élément INPUT, existe-t-il un moyen de contrôler le positionnement du sélecteur de date par rapport à l'élément INPUT? Si je voulais que le sélecteur de date apparaisse au-dessus ou sur le côté de l'élément plutôt qu'en dessous, comment faire?
Pardonnez-moi si cette réponse est quelque part vraiment évidente.
Si vous souhaitez obtenir la date à laquelle l'utilisateur la sélectionne, vous pouvez le faire:
$("#datepicker").datepicker({
onSelect: function() {
var dateObject = $(this).datepicker('getDate');
}
});
Je ne suis pas sûr de la deuxième partie de votre question. Mais, avez-vous essayé d'utiliser des feuilles de style et un positionnement relatif?
Vous pouvez utiliser la méthode getDate
:
var d = $('div#someID').datepicker('getDate');
Cela vous donnera un objet Date dans d
.
Il n'y a pas options de positionnement le popup mais vous pourriez être capable de faire quelque chose avec CSS ou l'événement beforeShow
si nécessaire.
$('div#someID').datepicker({
onSelect: function(dateText, inst) { alert(dateText); }
});
vous devez le lier à l'élément d'entrée uniquement
Vous pouvez supprimer l'attribut name de cette entrée afin qu'elle ne soit pas soumise.
Pour accéder à la valeur de ce contrôleur:
$("div#someID").datepicker( "getDate" )
et vous pouvez consulter le document dans http://jqueryui.com/demos/datepicker/
Vous pouvez le faire comme suit - avec validation juste pour vous assurer que le sélecteur de date est lié à l'élément.
var dt;
if ($("div#someID").is('.hasDatepicker')) {
dt = $("div#someID").datepicker('getDate');
}
Si vos éléments sélectionnés n'en font pas partie, vous devez utiliser cette méthode:
$('[type="date"]').datepicker();
$('[type="date"]').change(function() {
var date = $(this).datepicker("getDate");
console.log(date);
});
Pour positionner le sélecteur de date à côté du champ de saisie, vous pouvez utiliser le code suivant.
$('#datepicker').datepicker({
beforeShow: function(input, inst)
{
inst.dpDiv.css({marginLeft: input.offsetWidth + 'px'});
}
});