2015-07-16 1 views
1

J'ai 2 jquery datepickers, premier pour la date d'arrivée où min date est aujourd'hui et deuxième pour le départ où min date est date d'arrivée +1 jour. Datepickers montrent 2 mois.Date d'arrivée et de départ, datepicker avec 2 mois

Le problème est, quand l'arrivée datepicker montre Juillet et Août et je sélectionner par exemple 25 Août, il ens date de départ datepicker au 26 Août et changer mois Août et Septembre . Je veux qu'il reste sur Juillet et Août comme l'arrivée datepicker.

Quelqu'un a-t-il une idée?

+0

Avez-vous un violon/pouvez-vous mettre un ensemble? –

Répondre

0

Lorsque vous démarrez un outil de date avec des valeurs par défaut, il affiche uniquement le mois en cours. Dans votre cas, vous affichez 2 mois consécutifs, ce qui signifie simplement que datepicker affichera le mois courant et le mois suivant, sauf si vous interférer avec ses paramètres via setDate.

Donc, vous devez définir la date pour le datepicker d'arrivée quelque part. Si vous ne voulez pas que le deuxième datepicker montre un autre mois, mais que vous vous en teniez aux mêmes mois, tout comme le départ, ne fixez simplement pas la date.

Here is a fiddle où vous pouvez jouer avec l'idée. Afin d'imiter votre cas, j'ai mis en place deux datpickers: départ et arrivée. Lorsque l'utilisateur sélectionne une date de départ, les cueilleurs de date d'arrivée sont alignés. Dans le code, vous verrez une ligne de commentaire juste au-dessus de la ligne que je fixe la date de l'arrivée datePicker. Si vous commentez cette ligne, vous remarquerez que la date d'arrivée ne changera pas. Vous devez avoir quelque chose de similaire dans votre code.

// Comment out following line to stop return datepicker from changing  
$("#arrival").datepicker("setDate","+" + diffDays +"d"); 

J'espère que cela aide.

__UPDATE__

En fait ci-dessus devrait aider (sorta!). Voici l'idée (mais je ne pense vraiment pas que ce soit la fonctionnalité souhaitée par datepicker). À l'heure actuelle, le retour datepicker est défini sur au moins le jour suivant du jour du départ. De cette façon, il est garanti que votre date de retour ne peut être réglée à quelque chose avant votre départ. (C'est ce que j'ai suggéré ci-dessus pour trouver la ligne où vous définissez la date pour retourner datepicker et commenter). Au lieu de cela, ce que vous pouvez faire est de définir le calendrier date de retour à 30 jours avant le départ. De cette façon, il sera garanti d'avoir les mêmes mois (cependant l'utilisateur CAN choisir une date de retour avant la date de départ et vous devez en prendre soin dans votre logique métier et je pense vraiment que c'est une mauvaise idée).

Here is the new fiddle for this

var diffDays = Math.ceil(timeDiff/(1000 * 3600 * 24)) - 30; 

// Comment out following line to stop return datepicker from changing  
$("#arrival").datepicker("setDate","+" + diffDays +"d"); 
+0

Merci, mais malheureusement pas. J'ai également mis minDate [comme ceci] (https://jsfiddle.net/tv4ygbv6/3/), et il change toujours. – Becon

+0

@Becon jetez un oeil à ma mise à jour ci-dessus. Bien qu'il y ait une solution, je pense que c'est une mauvaise idée de suivre cette voie. – Alp