J'ai 2 zones de texte sur mon site pour la date de retrait et la date de retour à la fois en utilisant le sélecteur de date jquery.
J'ai du mal à définir la valeur de la date de restitution avec un jour d'avance sur la date de retrait sélectionnée.
Voici ce que j'ai:
$('.pickupDate').change(function() {
var date2 = $('.pickupDate').datepicker('getDate', '+1d');
$('.dropoffDate').datepicker('setDate', date2);
});
Ce qui précède s'exécutera mais la valeur dans la zone de texte de dépôt correspondra à la valeur de ramassage au lieu d'être un jour à l'avance. par exemple: si je sélectionne 01-01-2010, le code ci-dessus renvoie 01-01-2010 dans la liste déroulante au lieu de 02-01-2010.
Des pensées?
Merci pour votre aide, Rich
Essaye ça:
$('.pickupDate').change(function() {
var date2 = $('.pickupDate').datepicker('getDate', '+1d');
date2.setDate(date2.getDate()+1);
$('.dropoffDate').datepicker('setDate', date2);
});
Cette réponse m'a vraiment aidé à démarrer (noob) - mais j'ai rencontré un comportement étrange lorsque j'ai défini une date de début du 31/12/2014 et ajouté +1 à la date de fin par défaut. Au lieu de me donner une date de fin du 01/01/2015, je recevais le 02/01/2015 (!!!). Cette version analyse les composants de la date de début pour éviter ces bizarreries de fin d'année.
$( "#date_start" ).datepicker({
minDate: 0,
dateFormat: "mm/dd/yy",
onSelect: function(selected) {
$("#date_end").datepicker("option","minDate", selected); // mindate on the End datepicker cannot be less than start date already selected.
var date = $(this).datepicker('getDate');
var tempStartDate = new Date(date);
var default_end = new Date(tempStartDate.getFullYear(), tempStartDate.getMonth(), tempStartDate.getDate()+1); //this parses date to overcome new year date weirdness
$('#date_end').datepicker('setDate', default_end); // Set as default
}
});
$( "#date_end" ).datepicker({
minDate: 0,
dateFormat: "mm/dd/yy",
onSelect: function(selected) {
$("#date_start").datepicker("option","maxDate", selected); // maxdate on the Start datepicker cannot be more than end date selected.
}
});
Le sélecteur de date ('setDate') définit la date dans le sélecteur de date et non dans l'entrée.
Vous devez ajouter la date et la définir dans l'entrée.
var date2 = $('.pickupDate').datepicker('getDate');
var nextDayDate = new Date();
nextDayDate.setDate(date2.getDate() + 1);
$('input').val(nextDayDate);