Ver Mensaje Individual
  #26 (permalink)  
Antiguo 11/03/2013, 16:48
Avatar de Triby
Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 9 meses
Puntos: 2237
Respuesta: Guardar en variable despues de seleccionar en option select

Primero corrige tu HTML, empezamos con sólo un datepicker, pero necesitas revisar toda tu página:
--- El el for de cada label debes especificar la ID del campo al que pertenece, si hacen click en el label, el campo toma el foco
--- No es necesario (ni recomendable) tener <label><input /></label>
--- Los atributos name, onchange, onfocus, onblur, etc., de las etiquetas html son en minúsculas
-- La forma correcta de agregar un script es todo en minúsculas y especificando sólo el tipo, porque language ya es obsoleto: <script type="text/javascript"></script>

Como ejemplo de lo anterior y para resolver tu problema:

1- Agregas el atributo onfocus al datepicker, para que cuando el usuario ingrese a ese campo, tome los valores de fecha mínima y máxima desde select7 y select8 ("desde" y "hasta").

Código HTML:
Ver original
  1. <label for="datepicker_1" class="floflo"><strong>Llegada:</strong></label>
  2.     <input type="text" id="datepicker_1" name="llegada" class="datepicker" onfocus="datepickers_init();" onchange="calcular();" />

Debes hacer lo mismo para el segundo datepicker (si es que lo vas a usar)

2- Elimina la función de inicialización automática de los datepickers, realmente no es útil al cargar la página, porque no se ha seleccionado posada y plan, es decir, quita todo el bloque siguiente.

Código HTML:
Ver original
  1. <script language="JavaScript" type="text/JavaScript">
  2. $(document).ready(function()
  3. {
  4.        
  5.    $("#datepicker").datepicker();
  6.    
  7.     }
  8. );
  9. $(function(){
  10.         var pickerOpts = {
  11.             minDate: new Date()
  12.         }; 
  13.         $("#datepicker_1").datepicker(pickerOpts);
  14.     });

3- Agrega la función para cargar opciones de los datepickers cuando el usuario seleccione cualquiera de los dos

Código HTML:
Ver original
  1. <script type="text/javascript">
  2. function datepickers_init () {
  3.     var pickerOpts = {
  4.         minDate: new Date($('#select7').value),
  5.         maxDate: new Date($('#select8').value),
  6.     };
  7.     $("#datepicker_1").datepicker(pickerOpts);
  8.  
  9.         // Si vas a usar el segundo datepicker
  10.         // No necesitas crear otras opciones, son las mismas del anterior
  11.     $("#datepicker_2").datepicker(pickerOpts);
  12. }

4- La recomendación más importante es: Limpia tu código, porque me parece que vas dejando cosas que probaste y luego ya no usas (HTML y Javascript).
--- Ya que tienes jQuery, como bien te sugirió emprear, deja de usar document.getElementById('id_de_elemento') y, en su lugar, usa $('#id_de_elemento')

Finalmente, creo que estás en el mismo caso de hace un tiempo, desesperándote y queriendo avanzar rápido y eso no te deja ver que la solución puede ser un poco menos complicada de lo que parece y te desesperas más.

Tú puedes lograrlo, ya lo has demostrado muchas veces, solo necesitas un poco de paciencia y despejarte un poco.
__________________
- León, Guanajuato
- GV-Foto