Foros del Web » Programando para Internet » Javascript »

Varias funciones javascript y no funciona una de ellas

Estas en el tema de Varias funciones javascript y no funciona una de ellas en el foro de Javascript en Foros del Web. Hola: Tengo varias funciones de javascript y todas funcionan bien, pero la que me calcula el rango de fechas no está funcionando y no se ...
  #1 (permalink)  
Antiguo 18/12/2012, 13:17
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Pregunta Varias funciones javascript y no funciona una de ellas

Hola:

Tengo varias funciones de javascript y todas funcionan bien, pero la que me calcula el rango de fechas no está funcionando y no se porque. No se si es que están mal puestas o mal cerradas. Estas son las funciones:

Código Javascript:
Ver original
  1. $(document).ready(function()
  2.     {
  3.    $("#datepicker").datepicker();
  4.     }
  5. );
  6.  
  7. $("#datepicker_1").datepicker({ minDate: new Date() });
  8.  
  9.  
  10. var datepicked = function() {
  11. var n_noches=  "<?php echo $n_noches; ?>";
  12. var from = $('#datepicker_1');          
  13. var to = $('#datepicker_2');          
  14. var diferencia = $('#diferencia');
  15. var diferencia2 = $('#diferencia2');
  16.                                
  17. var fromDate = from.datepicker('getDate')
  18. var toDate = to.datepicker('getDate')
  19. if (toDate && fromDate) {
  20.     var difference = 0;
  21.     var oneDay = 86400000; //ms per day
  22.     var difference = Math.ceil((toDate.getTime() - fromDate.getTime()) / oneDay);
  23.     var difference2 = difference + 1;
  24.     diferencia.val(difference);            
  25.     diferencia2.val(difference2);
  26. }
  27.     if(difference > n_noches){
  28.     alert('el numero de noches no puede ser mayor a ' + n_noches +' noches');
  29.     return false;  
  30.     }
  31.                
  32.     }          
  33.     $(function() {                                    
  34.     $('#datepicker_1, #datepicker_2').datepicker({                        
  35.     onSelect: datepicked  
  36.         });                
  37.     //document.getElementById("diferencia").value = difference;
  38.        
  39.     });  
  40.  
  41.  
  42. function rango(){
  43.         var desde = "<?php echo $desde_plan; ?>";
  44.         var hasta = "<?php echo $hasta_plan; ?>";
  45.        
  46.         var desde_plan= <?php echo $php_ini; ?>; // Quita las comillas para que sea un entero
  47.         var hasta_plan= <?php echo $php_fin; ?>; // Igual aquí
  48.  
  49.       //  var llegada = document.form1.llegada.value;
  50.        // var salida = document.form1.salida.value;
  51.  
  52.        // Yo preferiría buscar por id, por compatibilidad entre navegadores
  53.         var llegada1 = document.getElementById('datepicker_1').value;
  54.        // Y ya que estás usando jquery, puedes hacerlo así:
  55.         var salida1 = document.getElementById('datepicker_2').value;
  56.        
  57.     js_ini = new Date(llegada1).getTime() / 1000;
  58.     js_fin = new Date(salida1).getTime() / 1000;
  59.     // Compruebas si los números a comparar están correctos
  60.     alert(llegada1);
  61.     alert(desde_plan + " - " + hasta_plan + "\n" + js_ini + " - " + js_fin);       
  62.         if(js_fin > hasta_plan) {
  63.         //alert("Has escrito: " + $("#TextBox1″).val());
  64.         alert("Fecha seleccionada fuera de rango, seleccionar fechas entre "+ desde +" hasta " + hasta);
  65.         document.form1.llegada.focus();
  66.         return false;
  67.         }
  68.     }
  69.  
  70. function Sumar(sel1, sel2, sel3){
  71.     var total;
  72.     var sel1 = document.getElementById("adultos").value;
  73.     var sel2 = document.getElementById("ctdad_ninos_me").value;
  74.     var sel3 = document.getElementById("ctdad_ninos_may").value;
  75.     resultado = parseInt(sel1) + parseInt(sel2) + parseInt(sel3);
  76.     document.getElementById('Resultado').value = resultado;
  77. }

Por favor les agradezco su ayuda, ya tengo 2 meses con este problema.

Gracias
__________________
Caminando con el corazón partío
  #2 (permalink)  
Antiguo 18/12/2012, 14:26
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Varias funciones javascript y no funciona una de ellas

En principio no parece haber errores de sintáxis, lo que no está muy claro es eso del rango.
Un rango supone una serie de valores comprendidos dentro de otros 2 valores conocidos. Por lo que esto
if(js_fin > hasta_plan) solo define si una cosa es mayor que otra

Por otra parte por que no comparar js_ini y js_fin que en definitiva son las variables que determinan las fechas.

Deberías poner todo el html generado para tener una idea más clara de lo que querés validar

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 18/12/2012, 14:48
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Varias funciones javascript y no funciona una de ellas

Incluí los calculos de rango dentro de la funcion del numero de noches y si la toma pero el problema que tengo es que la variable js_fin no trae el dato que debería. Yo lo que quiero es que si js_fin (fecha final del datepicker) es mayor a hasta_plan (fecha php) me envie mensaje de que no puede ser y no deje aceptar el form.

Asi quedó con los cambios que hice:

Código Javascript:
Ver original
  1. $(document).ready(function()
  2.     {
  3.    $("#datepicker").datepicker();
  4.     }
  5. );
  6.  
  7. $("#datepicker_1").datepicker({ minDate: new Date() });
  8.  
  9.  
  10. var datepicked = function() {
  11. var n_noches=  "<?php echo $n_noches; ?>";
  12. var from = $('#datepicker_1');          
  13. var to = $('#datepicker_2');          
  14. var diferencia = $('#diferencia');
  15. var diferencia2 = $('#diferencia2');
  16.                                
  17. var fromDate = from.datepicker('getDate')
  18. var toDate = to.datepicker('getDate')
  19. if (toDate && fromDate) {
  20.     var difference = 0;
  21.     var oneDay = 86400000; //ms per day
  22.     var difference = Math.ceil((toDate.getTime() - fromDate.getTime()) / oneDay);
  23.     var difference2 = difference + 1;
  24.     diferencia.val(difference);            
  25.     diferencia2.val(difference2);
  26. }
  27.     if(difference > n_noches){
  28.     alert('el numero de noches no puede ser mayor a ' + n_noches +' noches');
  29.     return false;  
  30.     }
  31.         var desde = "<?php echo $desde_plan; ?>";
  32.         var hasta = "<?php echo $hasta_plan; ?>";
  33.        
  34.         var desde_plan= <?php echo $php_ini; ?>; // Quita las comillas para que sea un entero
  35.         var hasta_plan= <?php echo $php_fin; ?>; // Igual aquí
  36.  
  37.       //  var llegada = document.form1.llegada.value;
  38.        // var salida = document.form1.salida.value;
  39.  
  40.        // Yo preferiría buscar por id, por compatibilidad entre navegadores
  41.         var llegada1 = document.getElementById('datepicker_1').value;
  42.        // Y ya que estás usando jquery, puedes hacerlo así:
  43.         var salida1 = document.getElementById('datepicker_2').value;
  44.        
  45.     var js_ini = new Date(llegada1).getTime() / 1000;
  46.     var js_fin = new Date(salida1).getTime() / 1000;
  47.     // Compruebas si los números a comparar están correctos
  48.     alert(salida1);
  49.     alert(desde_plan + ' - ' + hasta_plan + '\n' + js_ini + ' - ' + js_fin);       
  50.         if(js_fin > hasta_plan) {
  51.         alert('Fecha seleccionada fuera de rango, seleccionar fechas entre '+ desde +' hasta ' + hasta);
  52.         document.form1.llegada.focus();
  53.         return false;
  54.         }
  55.                
  56.     }          
  57.     $(function() {                                    
  58.     $('#datepicker_1, #datepicker_2').datepicker({                        
  59.     onSelect: datepicked  
  60.         });                
  61.     //document.getElementById("diferencia").value = difference;
  62.        
  63.     });  
  64.  
  65.  
  66. function Sumar(sel1, sel2, sel3){
  67.     var total;
  68.     var sel1 = document.getElementById("adultos").value;
  69.     var sel2 = document.getElementById("ctdad_ninos_me").value;
  70.     var sel3 = document.getElementById("ctdad_ninos_may").value;
  71.     resultado = parseInt(sel1) + parseInt(sel2) + parseInt(sel3);
  72.     document.getElementById('Resultado').value = resultado;
  73. }

y esta es la parte del form:

Código PHP:
Ver original
  1. <form name="form1" id="form1" action="mostrar.php" method="post">
  2. <table>
  3. <tr>
  4. <td>
  5.         <input name="id_posada" type="hidden" value="<?php echo $id_posada; ?>" />
  6.         <input name="id_plan" type="hidden" value="<?php echo $id_plan; ?>" />
  7.  
  8.         <fieldset>
  9.            <legend>1. Plan:</legend>
  10.            <label for="input-one"  class="otro"><strong>Posada:</strong></label>
  11.             <label>
  12.             <select name='select1' id='select1'>
  13.             <option name='nombre_posada' value="<?php echo $nombre_posada; ?>"><?php echo $nombre_posada; ?></option>
  14.             </select></label>
  15.  
  16.         <label for="input-two"  class="otro"><strong>Plan:</strong></label>
  17.        
  18.         <label>
  19.         <select  class="otro" name="select2" id="select2">
  20.           <option name='nombre_plan' value="<?php echo $nombre_plan; ?>"><?php echo $nombre_plan; ?></option>
  21.           </select>
  22.         </label>
  23.         <label  class="otro"><strong>Incluye:</strong></label>
  24.         <label><input type="text" name="incluye" value="<?php echo $incluye; ?>" class="fondo" readonly></label>
  25.         </fieldset>    
  26. </td>
  27.  
  28. <td>
  29.         <fieldset>
  30.             <legend>2. Personas:</legend>
  31.             <label for="input-tres" class="floflo"><strong>Adultos:</strong></label>
  32.             <label><select name="adultos" id="adultos" onChange="Sumar()">
  33.               <option value="0">Seleccionar...</option>
  34.               <option value="1">1</option>
  35.               <option value="2">2</option>
  36.               <option value="3">3</option>
  37.               <option value="4">4</option>
  38.               <option value="5">5</option>
  39.               <option value="6">6</option>
  40.               <option value="7">7</option>
  41.               <option value="8">8</option>
  42.               <option value="9">9</option>
  43.               <option value="10">10</option>
  44.               <option value="11">11</option>
  45.               <option value="12">12</option>
  46.             </select></label>
  47.            
  48.      
  49.  
  50.             <label for="input-cuatro" class="floflo"><strong>Niños Menos 6 años:</strong></label>
  51.             <label><select name="ctdad_ninos_me" id="ctdad_ninos_me" onChange="Sumar()">
  52.               <option value="0">Seleccionar...</option>
  53.               <option value="1">1</option>
  54.               <option value="2">2</option>
  55.               <option value="3">3</option>
  56.               <option value="4">4</option>
  57.               <option value="5">5</option>
  58.               <option value="6">6</option>
  59.               <option value="7">7</option>
  60.               <option value="8">8</option>
  61.               <option value="9">9</option>
  62.               <option value="10">10</option>
  63.               <option value="11">11</option>
  64.               <option value="12">12</option>
  65.             </select>
  66.             </label>
  67.             <label for="input-doce" class="floflo"><strong>Niños Mayores 6 años:</strong></label>
  68.             <label><select name="ctdad_ninos_may" id="ctdad_ninos_may" onChange="Sumar()">
  69.               <option value="0">Seleccionar...</option>
  70.               <option value="1">1</option>
  71.               <option value="2">2</option>
  72.               <option value="3">3</option>
  73.               <option value="4">4</option>
  74.               <option value="5">5</option>
  75.               <option value="6">6</option>
  76.               <option value="7">7</option>
  77.               <option value="8">8</option>
  78.               <option value="9">9</option>
  79.               <option value="10">10</option>
  80.               <option value="11">11</option>
  81.               <option value="12">12</option>
  82.             </select>
  83.             </label>
  84.             <label for="input-doce" class="floflo"><strong>Total Personas:</strong></label>
  85.             <label><input name="Resultado" type="text" id="Resultado"  class="fondo" disabled size="14"></label>
  86.     </fieldset>
  87.             </td>
  88.             </tr>
  89.  
  90.         <tr>
  91.         <td>
  92.         <fieldset>
  93.             <legend>3. Habitaciones:</legend>
  94.             <label for="input-ocho" class="floflo"><strong>Nº Habitaciones:</strong></label>
  95.             <label>
  96.             <select name="habitaciones" id="habitaciones">
  97.               <option value="0">Seleccionar...</option>
  98.               <option value="1">1</option>
  99.               <option value="2">2</option>
  100.               <option value="3">3</option>
  101.               <option value="4">4</option>
  102.               <option value="5">5</option>
  103.               <option value="6">6</option>
  104.               <option value="7">7</option>
  105.               <option value="8">8</option>
  106.               <option value="9">9</option>
  107.               <option value="10">10</option>
  108.               <option value="11">11</option>
  109.               <option value="12">12</option>
  110.             </select>
  111.             </label>
  112.             <label>Para seleccionar varios tipos de habitaciones hacer clic en cada opción y mantener presionadas teclas Ctrl + C</label>
  113.             <label for="input-siete" class="floflo"><strong>Tipo Habitación:</strong></label>
  114.             <?php
  115.             // Consultar la base de datos
  116.            
  117.             $consulta_mysql="select tipo_habitacion_c from detalle_habitaciones WHERE id='$id'";
  118.             $resultado=mysql_query($consulta_mysql,$conex);
  119.  
  120.             echo "<label><select name='tipo_habitacion_c[]' multiple size='3'>";
  121.             while($fila=mysql_fetch_array($resultado)){
  122.             echo "<option value='".$fila['tipo_habitacion_c']."'>".$fila['tipo_habitacion_c']." personas</option>";
  123.             }
  124.             mysql_free_result($resultado);
  125.             echo "</select></label>";
  126.            
  127.             ?>
  128.             </fieldset>
  129.         </td>
  130.        
  131.         <td>
  132. <fieldset>
  133.             <legend>4. Fechas:</legend>
  134.            
  135.             <label for="input-diez" class="floflo"><strong>Llegada:</strong></label>
  136.             <label><input type="text" id="datepicker_1" name="llegada" class="datepicker" /></label>
  137.             <label for="input-once" class="floflo"><strong>Salida:</strong></label>
  138.             <label><input type="text" id="datepicker_2" name="salida" class="datepicker" /></label>
  139.             <label for="input-doce" class="floflo"><strong>Nº Noches:</strong></label>
  140.             <label><input type="text" id="n_dias" name="n_dias" readonly  class="fondo" value="<?php echo $n_dias ?>"></label>
  141.             <label for="input-doce" class="floflo"><strong>Nº Días:</strong></label>
  142.             <label><input type="text" id="n_noches" name="n_noches" readonly  class="fondo" value="<?php echo $n_noches ?>"></label>
  143. </fieldset>
  144. </td>
  145. </tr>
  146. </table>
  147. <br />
  148.             <p align="center"><input class="bt1" type="button" alt="SUBMIT" name="Regresar" value="Regresar" onClick="location.href='planes.php'" /> - <input class="bt2" type="submit" alt="SUBMIT" name="Submit" value="Cotizar" /></p>
  149. </form>
__________________
Caminando con el corazón partío
  #4 (permalink)  
Antiguo 18/12/2012, 15:28
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Varias funciones javascript y no funciona una de ellas

Seguimos en la misma, porque no se sabe ni con que formato ni que valor se generan con $php_fin
imaginando un valor no es muy dificil sacar la diferencia

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. </head>
  7. <script type="text/javascript">
  8. //<![CDATA[
  9. // un dia de diferencia 86400 segundos
  10. // formato x defecto de datepicker mes/dia/año
  11.   var salida1 = "12/04/2012";
  12.   var hasta_plan= "12/05/2012";
  13.   var js_ini = new Date(salida1).getTime() / 1000;
  14.   var js_fin = new Date(hasta_plan).getTime() / 1000;
  15.    alert(js_ini - js_fin);
  16.    alert(js_fin - js_ini);
  17. //]]>
  18. </body>
  19. </html>

según restes inicio de fin ó fin de inicio tendrás una diferencia de -1 +1 días

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 18/12/2012, 15:36
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Varias funciones javascript y no funciona una de ellas

la variable php que esta almacenada es asi por ejemplo 2012-12-20 y yo la convierto asi

Código PHP:
Ver original
  1. $php_ini = strtotime($desde_plan);
  2. $php_fin = strtotime($hasta_plan);

al hacer un echo de $php_fin me arroja 1355097600

Entonces cuando trato de preguntar en el javascript si js_fin > hasta_plan no funciona

y al mostrar la variable js_fin me da NaN
__________________
Caminando con el corazón partío
  #6 (permalink)  
Antiguo 18/12/2012, 16:13
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Varias funciones javascript y no funciona una de ellas

La fecha en javascript viene asi 27/12/2012 y la de php 2012-12-29 por ejemplo.

De verdad estoy muy confundida. Solo me falta esto para terminar pero no se como hacerlo
__________________
Caminando con el corazón partío

Última edición por kimmy; 18/12/2012 a las 16:21
  #7 (permalink)  
Antiguo 18/12/2012, 16:54
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Varias funciones javascript y no funciona una de ellas

Sinceramente no entiendo muy bien lo que hacés, como veo dos valores recuperados desde el datepicker ne me cierra de dónde proviene esa fecha en php.

De todas formas ejecutá este ejemplo

Código PHP:
Ver original
  1. <?php
  2. $fecha = "12/04/2012";
  3. $tiempo_en_segundos = strtotime($fecha);
  4. echo $tiempo_en_segundos;
  5. ?>
  6. <br>
  7. <script type="text/javascript">
  8. //<![CDATA[
  9. var tiempo_en_segundos = new Date('<?php echo $fecha; ?>').getTime() / 1000;
  10. document.write(tiempo_en_segundos);
  11. //]]>
  12. </script>

como ves ambas cosas, $tiempo_en_segundos (php) y tiempo_en_segundos (js) devuelven los mismo, es decir una cantidad x de segundos para una fecha dada, es decir son comparables, y a mayor cantidad de segundos, más reciente la fecha.
En mi ejemplo ambas variables obtienen el resultado desde un valor comun, la variable $fecha, vos tendrías que hacer que el tiempo_en_segundos de javascript sea tomado del valor del campo completado del datePicker
mirá este formulario
http://luzdecielo.com/alquiler.bariloche?link=reservas
y poné las fechas mal, ¿es algo asi lo que estas queriendo hacer?
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #8 (permalink)  
Antiguo 18/12/2012, 16:59
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Varias funciones javascript y no funciona una de ellas

probé cambiando la fecha del datepicker en formato YYYY/MM/DD y si funciona, pero el problema es que tengo que mostrar la fecha al cliente en formato DD/MM/YYYY.

Cómo hago para convertir dentro de la función javascript la fecha DD/MM/YYYY a YYYY/MM/DD?

La fecha php la tengo que usar porque debo verificar que si una persona desea hacer una reservación en un hotel, la fecha no debe ser mayor a la almacenada en mysql (esta fecha la ha cargado previamente el administrador de la página).

Aqui es donde lo uso:

http://vamonosdevacaciones.com.ve/co...otizar=Cotizar
__________________
Caminando con el corazón partío
  #9 (permalink)  
Antiguo 18/12/2012, 17:17
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Varias funciones javascript y no funciona una de ellas

alguien estuvo haciendo algo parecido por aqui
http://www.forosdelweb.com/f13/cambi...9/#post4333568

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #10 (permalink)  
Antiguo 18/12/2012, 17:29
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Varias funciones javascript y no funciona una de ellas

Lo hice asi, pero no funciono:

Código Javascript:
Ver original
  1. var llegadas = llegada1.split("/");
  2.  
  3. var ano =a[0];
  4. var mes =a[1];
  5. var dia =a[2];
  6.  
  7. var fecha1 = dia+"/"+mes+"/"+ano;
  8.  
  9.  var salidas = salida1.split("/");
  10.  
  11. var ano1 =a[0];
  12. var mes1 =a[1];
  13. var dia1 =a[2];
  14.  
  15. var fecha2 = dia1+"/"+mes1+"/"+ano1;
  16.  
  17.     var js_ini = new Date(fecha1).getTime();
  18.     var js_fin = new Date(fecha2).getTime();
__________________
Caminando con el corazón partío
  #11 (permalink)  
Antiguo 18/12/2012, 17:37
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Varias funciones javascript y no funciona una de ellas

Cita:
Iniciado por kimmy Ver Mensaje
Lo hice asi, pero no funciono:

Código Javascript:
Ver original
  1. var llegadas = llegada1.split("/");
  2.  
  3. var ano =a[0];
  4. var mes =a[1];
  5. var dia =a[2];
  6.  
  7. var fecha1 = dia+"/"+mes+"/"+ano;
  8.  
  9.  var salidas = salida1.split("/");
  10.  
  11. var ano1 =a[0];
  12. var mes1 =a[1];
  13. var dia1 =a[2];
  14.  
  15. var fecha2 = dia1+"/"+mes1+"/"+ano1;
  16.  
  17.     var js_ini = new Date(fecha1).getTime();
  18.     var js_fin = new Date(fecha2).getTime();
no tenés que copiar literalmente

var a = fechaAsignacionI.split("-");

pero en tu caso a no es nada, tu variable es llegadas/salidas
llegadas[0]
salidas[0]
etc
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #12 (permalink)  
Antiguo 18/12/2012, 17:42
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Varias funciones javascript y no funciona una de ellas

si, tienes razón después lo noté. Ahora quedó asi y funciona:

Código Javascript:
Ver original
  1. // Yo preferiría buscar por id, por compatibilidad entre navegadores
  2.         var llegada1 = document.getElementById('datepicker_1').value;
  3.        // Y ya que estás usando jquery, puedes hacerlo así:
  4.         var salida1 = document.getElementById('datepicker_2').value;
  5.        
  6. var llegadas = llegada1.split("/");
  7.  
  8. var ano =llegadas[0];
  9. var mes =llegadas[1];
  10. var dia =llegadas[2];
  11.  
  12. var fecha1 = dia+"/"+mes+"/"+ano;
  13.  
  14.  var salidas = salida1.split("/");
  15.  
  16. var ano1 =salidas[0];
  17. var mes1 =salidas[1];
  18. var dia1 =salidas[2];
  19.  
  20. var fecha2 = dia1+"/"+mes1+"/"+ano1;
  21.  
  22. var js_ini = new Date(fecha1).getTime()/1000;
  23. var js_fin = new Date(fecha2).getTime()/1000;

Lo único que me falta resolver es que el usuario no pueda aceptar (pasar a la otra página) hasta que se cumpla esto.

Muchas gracias por tu ayuda, tiempo y paciencia.

__________________
Caminando con el corazón partío
  #13 (permalink)  
Antiguo 18/12/2012, 19:24
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Varias funciones javascript y no funciona una de ellas

Cómo puede validar esta funcion al hacer submit para que no pueda pasar hasta que esten los datos correctos.

????
__________________
Caminando con el corazón partío
  #14 (permalink)  
Antiguo 18/12/2012, 21:07
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Varias funciones javascript y no funciona una de ellas

Lee este
http://www.forosdelweb.com/f13/forma...8/#post4295391
este
http://www.forosdelweb.com/f13/valid...3/#post4213498
y este otro ejemplo
http://www.forosdelweb.com/f13/como-...3/#post4284386
SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #15 (permalink)  
Antiguo 18/12/2012, 21:57
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Varias funciones javascript y no funciona una de ellas

Gracias por la ayuda, pero es diferente con jquery?

Estoy tratando de hacerlo con jquery.validate.js pero no funciona. Lo coloqué asi:

Código Javascript:
Ver original
  1. <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
  2. <script type="text/javascript" src="js/jquery.ui.core.js"></script>
  3. <script type="text/javascript" src="js/jquery.ui.widget.js"></script>
  4. <script type="text/javascript" src="js/jquery.ui.datepicker.js"></script>
  5. <script type="text/javascript" src="js/jquery.ui.datepicker-es.js"></script>
  6. <script type="text/javascript" src="js/jquery.validate.js"></script>
  7.  
  8. $(document).ready(function()
  9.     {
  10.    $("#datepicker").datepicker();
  11.     }
  12. );
  13.  
  14. $("#datepicker_1").datepicker({ minDate: new Date() });
  15.  
  16. </script>
  17. <script type="text/javascript">
  18. $().ready(function() {
  19.     $("#form1").validate({
  20. var datepicked = function() {
  21. var n_noches=  "<?php echo $n_noches; ?>";
  22. var from = $('#datepicker_1');          
  23. var to = $('#datepicker_2');          
  24. var diferencia = $('#diferencia');
  25. var diferencia2 = $('#diferencia2');
  26.                                
  27. var fromDate = from.datepicker('getDate')
  28. var toDate = to.datepicker('getDate')
  29. if (toDate && fromDate) {
  30.     var difference = 0;
  31.     var oneDay = 86400000; //ms per day
  32.     var difference = Math.ceil((toDate.getTime() - fromDate.getTime()) / oneDay);
  33.     var difference2 = difference + 1;
  34.     diferencia.val(difference);            
  35.     diferencia2.val(difference2);
  36. }
  37.     if(difference > n_noches){
  38.     alert('el numero de noches no puede ser mayor a ' + n_noches +' noches');
  39.     return false;  
  40.     }
  41.    
  42.    
  43.         var desde = "<?php echo $desde2; ?>";
  44.         var hasta = "<?php echo $hasta2; ?>";
  45.        
  46.         var desde_plan= <?php echo $php_ini; ?>; // Quita las comillas para que sea un entero
  47.         var hasta_plan= <?php echo $php_fin; ?>; // Igual aquí
  48.  
  49.  
  50.        // Yo preferiría buscar por id, por compatibilidad entre navegadores
  51.         var llegada1 = document.getElementById('datepicker_1').value;
  52.        // Y ya que estás usando jquery, puedes hacerlo así:
  53.         var salida1 = document.getElementById('datepicker_2').value;
  54.        
  55. var llegadas = llegada1.split("/");
  56.  
  57. var ano =llegadas[0];
  58. var mes =llegadas[1];
  59. var dia =llegadas[2];
  60.  
  61. var fecha1 = dia+"/"+mes+"/"+ano;
  62.  
  63.  var salidas = salida1.split("/");
  64.  
  65. var ano1 =salidas[0];
  66. var mes1 =salidas[1];
  67. var dia1 =salidas[2];
  68.  
  69. var fecha2 = dia1+"/"+mes1+"/"+ano1;
  70.  
  71.  
  72.     var js_ini = new Date(fecha1).getTime()/1000;
  73.     var js_fin = new Date(fecha2).getTime()/1000;
  74.     // Compruebas si los números a comparar están correctos
  75.         if(js_fin > hasta_plan) {
  76.         //alert("Has escrito: " + $("#TextBox1″).val());
  77.         alert('Fecha seleccionada fuera de rango, seleccionar fechas entre '+ desde +' hasta ' + hasta);
  78.         document.form1.llegada.focus();
  79.         return false;
  80.         }
  81.                
  82.     }          
  83.     $(function() {                                    
  84.     $('#datepicker_1, #datepicker_2').datepicker({                        
  85.     onSelect: datepicked  
  86.         });                
  87.        
  88.     });  
  89.  
  90.  
  91.  
  92. function Sumar(sel1, sel2, sel3){
  93.     var total;
  94.     var sel1 = document.getElementById("adultos").value;
  95.     var sel2 = document.getElementById("ctdad_ninos_me").value;
  96.     var sel3 = document.getElementById("ctdad_ninos_may").value;
  97.     resultado = parseInt(sel1) + parseInt(sel2) + parseInt(sel3);
  98.     document.getElementById('Resultado').value = resultado;
  99. }
  100. });

Por qué no funciona?
__________________
Caminando con el corazón partío

Etiquetas: funcion, funciones, jquery, js, php
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 18:53.