Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/05/2010, 23:14
Xav1er
 
Fecha de Ingreso: mayo-2010
Mensajes: 3
Antigüedad: 14 años
Puntos: 0
Exclamación No logro tomar los valores de un input para hacer una comparacion

Hola a todos, necesito hacer que este script me funcione, el problema que tengo en la forma de capturar las variables porque el script funciona perfectamente

Originalmente me capturaba los valores de esta manera


Código Javascript:
Ver original
  1. function CompararHoras(sHora1, sHora2, vam, vpm) {
  2.    
  3.     var arHora1 = sHora1.split(":");
  4.     var arHora2 = sHora2.split(":");
  5.     var vam;
  6.     var vpm;
  7.    
  8.     // Obtener horas y minutos (hora 1)
  9.     var hh1 = parseInt(arHora1[0],10);
  10.     var mm1 = parseInt(arHora1[1],10);
  11.  
  12.     // Obtener horas y minutos (hora 2)
  13.     var hh2 = parseInt(arHora2[0],10);
  14.     var mm2 = parseInt(arHora2[1],10);

El problema es que mandaba los valores desde el boton de esta manera


Código HTML:
Ver original
  1. <INPUT TYPE="button" NAME="btnComparar" Value="Comparar horas" OnClick="alert(CompararHoras(h1.value,h2.value,var1.value,var2.value));">

y no me sirve enviar los valores de esa manera, necesito tomar los valores normalmente algo estilo document.formulario.h01_ini.value lo modifique un poco de esta manera pero no me funciona:



Código Javascript:
Ver original
  1. function Valida(formulario) {
  2.  
  3.     var arHora1 = document.formulario.h01_ini.value;
  4.     arHora1 = arHora1.split(":");
  5.     var arHora2 = document.formulario.h01_fin.value;
  6.     arHora2 = arHora2.split(":");
  7.     var vam = document.formulario.h01_ini_tipo.value;
  8.     var vpm = document.formulario.h01_fin_tipo.value;
  9.    
  10.     // Obtener horas y minutos (hora 1)
  11.     var hh1 = parseInt(arHora1[0],10);
  12.     var mm1 = parseInt(arHora1[1],10);
  13.  
  14.     // Obtener horas y minutos (hora 2)
  15.     var hh2 = parseInt(arHora2[0],10);
  16.     var mm2 = parseInt(arHora2[1],10);

Y el boton lo arregle asi:


Código HTML:
Ver original
  1. <INPUT TYPE="button" name="validar" value="Validar" onClick="Valida(this)">


pero no logro hacer que funcione se que debe ser un error estupido que estoy cometiendo algo de sintaxis o estoy totalmente errado pero necesito ayuda y no consigo a nadie con buenos conocimientos de javascript que pueda ayudarme por eso recurro a ustedes....

De antemano les agradezco la ayuda que puedan prestarme

aqui les dejo el codigo completo del la pagina html para que vean el funcionamiento del script


Código HTML:
Ver original
  1. <TITLE> prueba de horas y am y pm</TITLE>
  2.  
  3. <SCRIPT LANGUAGE="JavaScript">
  4.  
  5. function Valida(formulario) {
  6.  
  7.     var arHora1 = document.formulario.h01_ini.value;
  8.     arHora1 = arHora1.split(":");
  9.     var arHora2 = document.formulario.h01_fin.value;
  10.     arHora2 = arHora2.split(":");
  11.     var vam = document.formulario.h01_ini_tipo.value;
  12.     var vpm = document.formulario.h01_fin_tipo.value;
  13.    
  14.     // Obtener horas y minutos (hora 1)
  15.     var hh1 = parseInt(arHora1[0],10);
  16.     var mm1 = parseInt(arHora1[1],10);
  17.  
  18.     // Obtener horas y minutos (hora 2)
  19.     var hh2 = parseInt(arHora2[0],10);
  20.     var mm2 = parseInt(arHora2[1],10);
  21.  
  22.     // Comparar
  23.  
  24.     ////////////////////primer if comprara si el primer listbox es AM si es asi lo acepta/////////////////////////////////
  25.  
  26.     if (vam<vpm)    
  27.     {
  28.         return "Hora correcta";
  29.     }
  30.  
  31.         else
  32.  
  33.     {
  34.  
  35.    ////////////////////segundo if comprara si el primer listbox es PM si es asi NO lo acepta/////////////////////////////////
  36.  
  37.         if (vam>vpm)
  38.         {
  39.             return "Hora incorrecta";
  40.         }
  41.  
  42.         else
  43.  
  44.         {
  45.  
  46.     ////////////////////Tercer if comprara si el primer o segundo listbox es igual si es asi lo acepta/////////////////////////////////
  47.  
  48.         if (vam==vpm)
  49.         {
  50.  
  51. ///////////////////////////si las horas del primer texbox es menor a las del segundo acepta////////////////////
  52.  
  53.                  if (hh1<hh2 || (hh1==hh2 && mm1<mm2))
  54.                  return "Hora correcta";
  55.            
  56.              else
  57.  
  58. //////////////////si las horas del primer texbox son mayores no lo acepta pero si las horas son iguales y los minutos del/////
  59. //////////////////primero son mayor o igual que el segundo de igual manera no lo acepta/////////////////////////////////////
  60.  
  61.                  if (hh1>hh2 || (hh1==hh2 && mm1>=mm2))
  62.                  return "Hora incorrecta";
  63.        
  64.         }      
  65.         }
  66.     }
  67. //  "[/^(1|01|2|02|3|03|4|04|5|05|6|06|7|07|8|08|9|09|10|11|12)\:([0-5]0|[0-5][1-9])/]"
  68.  
  69. }
  70.  
  71. function fecha(a){
  72.    
  73.  //onChange="alert(CompararHoras(h1.value,h2.value,var1.value,var2.value));"
  74.    
  75.     patron ="/^(1|01|2|02|3|03|4|04|5|05|6|06|7|07|8|08|9|09|10|11|12)\:([0-5]0|[0-5][1-9])/$";
  76.     if(!/^(1|01|2|02|3|03|4|04|5|05|6|06|7|07|8|08|9|09|10|11|12)\:([0-5]0|[0-5][1-9])$/.test(a.value))
  77.         alert("Hora incorrecta");
  78.    
  79.     }
  80.    
  81.  
  82. </HEAD>
  83.  
  84. <FORM NAME="formulario" METHOD="get" ACTION="Valida()" >
  85.  
  86.   <p>hora inicio
  87.     <INPUT TYPE="text" NAME="h01_ini" value="09:35" onBlur="return fecha(this)">  
  88.     <label>
  89.       <select name="h01_ini_tipo" size="1" id="h01_ini_tipo">
  90.        
  91.         <option>am</option>
  92.         <option>pm</option>
  93.       </select>
  94.     </label>
  95.   <BR>
  96.     hora final<INPUT TYPE="text" NAME="h01_fin" value="09:30" onBlur="return fecha(this)">
  97.   <label>
  98.     <select name="h01_fin_tipo" size="1" id="h01_fin_tipo">
  99.       <option>am</option>
  100.       <option>pm</option>
  101.       </select>
  102.   </label>
  103.   </p>
  104.   <p>&nbsp;</p>
  105.   <p>&nbsp;</p>
  106.   <p>
  107.     <INPUT TYPE="button" name="validar" value="Validar" onClick="Valida(this)">
  108.   </p>
  109. </form>
  110. </BODY>
  111. </HTML>


Un saludo a todos y repito gracias de antemano

Última edición por Xav1er; 04/05/2010 a las 00:32