Foros del Web » Programando para Internet » Jquery »

Margen entre dos rangos con Timepicker y Datetimerange

Estas en el tema de Margen entre dos rangos con Timepicker y Datetimerange en el foro de Jquery en Foros del Web. Buenos días , 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" ...
  #1 (permalink)  
Antiguo 11/09/2017, 09:42
 
Fecha de Ingreso: abril-2010
Mensajes: 267
Antigüedad: 14 años
Puntos: 1
Margen entre dos rangos con Timepicker y Datetimerange

Buenos días ,

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
  1. var minIntervalDays = 1; // Days
  2.     var minIntervalDaysCollectionAirport = 3; // Days
  3.    
  4.     var startDateTextBox = $('input[name="reserve[collection][date]"]');
  5.     var startTimeTextBox = $('input[name="reserve[collection][hour]"]');
  6.     var endDateTextBox = $('input[name="reserve[return][date]"]');
  7.     var endTimeTextBox = $('input[name="reserve[return][hour]"]');
  8.    
  9.     $.timepicker.datetimeRange(
  10.         startDateTextBox,
  11.         endDateTextBox,
  12.         {
  13.             minDate: '+1d',
  14.             beforeShow: function(input, inst) {
  15.                 var isairport = $('select[name="reserve[collection][location]"]').find(':selected').data('is-airport');
  16.                 var changeMinInterval = (isairport == 1 ? minIntervalDaysCollectionAirport : minIntervalDays);
  17.                 return {
  18.                     minInterval: (1000 * 60 * 60 * 24) * changeMinInterval,
  19.                 };
  20.             },
  21.             maxDate: '+2y',
  22.             /* minInterval: (1000 * 60 * 60 * 24), */
  23.             dateFormat: 'yy-mm-dd',
  24.             timeFormat: 'HH:mm',
  25.             start: {
  26.                 altField: startTimeTextBox,
  27.             },
  28.             end: {
  29.                 altField: endTimeTextBox,
  30.             },
  31.             altFieldTimeOnly: true,
  32.         }
  33.     );

Código HTML:
Ver original
  1. <select name="reserve[collection][location]" required>
  2. <option data-is-airport="0" value="" selected disabled>Ubicación</option>
  3. <option data-is-airport="0" value="1">Benidorm [Oficina]</option>
  4. <option data-is-airport="1" value="2">Alicante [Aeropuerto]</option>
  5. <option data-is-airport="1" value="3">Valencia [Aeropuerto]</option>
  6. <option data-is-airport="1" value="4">Murcia [Aeropuerto]</option>
  7. <input type="text" name="reserve[collection][date]" data-time="" placeholder="yyyy-mm-dd" value="" readonly required>
  8. <input type="text" name="reserve[collection][hour]" placeholder="HH:ii" value="" readonly required>
  9. <select name="reserve[return][location]" required>
  10. <option data-is-airport="0" value="" selected disabled>Ubicación</option>
  11. <option data-is-airport="0" value="1">Benidorm [Oficina]</option>
  12. <option data-is-airport="1" value="2">Alicante [Aeropuerto]</option>
  13. <option data-is-airport="1" value="3">Valencia [Aeropuerto]</option>
  14. <option data-is-airport="1" value="4">Murcia [Aeropuerto]</option>
  15. <input type="text" name="reserve[return][date]" data-time="" placeholder="yyyy-mm-dd" value="" readonly required>
  16. <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.

Última edición por alejandromaringomez; 11/09/2017 a las 09:48 Razón: Añadir contenido.

Etiquetas: margen, rangos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:29.