jquery: utilizzando due datepicker con due campi (campo 1, campo2 + 1 giorno) come booking.com

Come va?

Ho due datepicker con due campi

Voglio quando l’utente che sceglie (Da) il secondo campo (TO) sarà il giorno successivo. come booking.com

ad esempio: quando l’utente sceglie Da 01-01-2013, direttamente il secondo campo TO 02-01-2013 (giorno successivo)

guarda questa immagine per il modulo

inserisci la descrizione dell'immagine qui

questo è il codice di jquery:

$(function() { $( "#from" ).datepicker({ defaultDate: "+1D", changeMonth: true, numberOfMonths: 1, dateFormat:"dd-mm-yy", minDate: "+1D", showOn: "button", buttonImage: "http://keith-wood.name/img/calendar.gif", buttonImageOnly: true , onSelect: function(dateText, inst){ var d = dateFormat(new Date(dateText + 1), "DD/MM/YYYY"); $("#to").val(d); } }); 

questo è il mio codice html:

 

From
To


come può farlo?

 onSelect: function(dateText, inst){ var d = $.datepicker.parseDate(inst.settings.dateFormat, dateText); d.setDate(d.getDate()+1); $("#to").val($.datepicker.formatDate(inst.settings.dateFormat, d)); } 

Ho creato un JSFiddle funzionante per te:

http://jsfiddle.net/jirilmongeorge/f329k/26/

Ecco il codice javascript:

 $(document).ready(function() { $( "#from" ).datepicker({ defaultDate: "+1D", changeMonth: true, numberOfMonths: 1, dateFormat:"dd-mm-yy", minDate: "+1D", showOn: "button", buttonImage: "http://sofit.miximages.com/javascript/calendar.gif", buttonImageOnly: true , onSelect: function(dateText, inst){ var d = $.datepicker.parseDate(inst.settings.dateFormat, dateText); d.setDate(d.getDate()+1); $("#to").val($.datepicker.formatDate(inst.settings.dateFormat, d)); } }); $( "#to" ).datepicker({ showOn: "button", buttonImage: "http://sofit.miximages.com/javascript/calendar.gif", buttonImageOnly: true, changeMonth: true, changeYear: true }); $('#from').attr('readonly', true); $('#to').attr('readonly', true); }); 

devi convertire il tuo dateText nel formato corretto della data, quindi più uno e tornare al valore #to

 var from = dateText.split("-"); var fDate = new Date(from[2], from[1] - 1, from[0]); var newdate = new Date(fDate); newdate.setDate(newdate.getDate() + 1); $("#to").val(newdate.getDate() + "-" + newdate.getMonth() + "-" + newdate.getFullYear());