Miren estoy haciendo una web en la que tengo tres inputs:
select[name="reserve[collection][location]"]
input[name="reserve[collection][date]"]
input[name="reserve[collection][hour]"]
select[name="reserve[return][location]"]
input[name="reserve[return][date]"]
input[name="reserve[return][hour]"]
Los de "date" y "hour" son inputs normales y corrientes con readonly, location es un select en el que tiene cada option un data (data-is-airport), 0 es que no es un aeropuerto y 1 es un aeropuerto, la idea es que como mucho deje escoger hasta dos años en fechas, siempre tiene que ser ya para a partir de mañana (incluido), la cosa es donde está el minInterval, el select[name="reserve[return][location]"] en esto no tiene nada que ver, en caso de que se seleccione en select[name="reserve[collection][location]"] una opcion que sí sea aeropuerto lo que debería de hacer es dejar 3 días de margen en minInterval, mientras si no es aeropuerto va a ser un día de margen.
He hecho todo lo que he podido y no he conseguido hacerlo funcionar. Agradezco la ayuda :)
Código Javascript:
Ver original
var minIntervalDays = 1; // Days var minIntervalDaysCollectionAirport = 3; // Days var startDateTextBox = $('input[name="reserve[collection][date]"]'); var startTimeTextBox = $('input[name="reserve[collection][hour]"]'); var endDateTextBox = $('input[name="reserve[return][date]"]'); var endTimeTextBox = $('input[name="reserve[return][hour]"]'); $.timepicker.datetimeRange( startDateTextBox, endDateTextBox, { minDate: '+1d', beforeShow: function(input, inst) { var isairport = $('select[name="reserve[collection][location]"]').find(':selected').data('is-airport'); var changeMinInterval = (isairport == 1 ? minIntervalDaysCollectionAirport : minIntervalDays); return { minInterval: (1000 * 60 * 60 * 24) * changeMinInterval, }; }, maxDate: '+2y', /* minInterval: (1000 * 60 * 60 * 24), */ dateFormat: 'yy-mm-dd', timeFormat: 'HH:mm', start: { altField: startTimeTextBox, }, end: { altField: endTimeTextBox, }, altFieldTimeOnly: true, } );
Código HTML:
Ver original
<select name="reserve[collection][location]" required> </select> <input type="text" name="reserve[collection][date]" data-time="" placeholder="yyyy-mm-dd" value="" readonly required> <input type="text" name="reserve[collection][hour]" placeholder="HH:ii" value="" readonly required> <select name="reserve[return][location]" required> </select> <input type="text" name="reserve[return][date]" data-time="" placeholder="yyyy-mm-dd" value="" readonly required> <input type="text" name="reserve[return][hour]" placeholder="HH:ii" value="" readonly required>
He probado también con change y onChange, el problema es que si al entrar cambio a aeropuerto y selecciono fecha no me da el margen de tres días, pero ya a la segunda empieza a ir bien, lo que no me funciona es el return, según varias páginas así debería de ir, a mi no me funciona en el de BeforeShow.