Foros del Web » Programando para Internet » Javascript »

No logro tomar los valores de un input para hacer una comparacion

Estas en el tema de No logro tomar los valores de un input para hacer una comparacion en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 02/05/2010, 23:14
 
Fecha de Ingreso: mayo-2010
Mensajes: 3
Antigüedad: 14 años, 6 meses
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
  #2 (permalink)  
Antiguo 03/05/2010, 08:11
Avatar de Fdo88  
Fecha de Ingreso: febrero-2010
Mensajes: 47
Antigüedad: 14 años, 8 meses
Puntos: 0
De acuerdo Respuesta: No logro tomar los valores de un input para hacer una comparacion

En primer lugar te recomiendo usar las etiquetas de codigo, pues ese color naranja es muy incomodo.
Y en segundo lugar verifica la llegada de los valores; es decir,
Si llega el formulario?
Hasta que punto se ejecuta la funcion Valida?
  #3 (permalink)  
Antiguo 03/05/2010, 20:00
 
Fecha de Ingreso: mayo-2010
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: No logro tomar los valores de un input para hacer una comparacion

Cita:
Iniciado por Fdo88 Ver Mensaje
En primer lugar te recomiendo usar las etiquetas de codigo, pues ese color naranja es muy incomodo.
Y en segundo lugar verifica la llegada de los valores; es decir,
Si llega el formulario?
Hasta que punto se ejecuta la funcion Valida?
Ok gracias por explicarme que existen las etiquetas de codigo en este foro.... como podras ver soy novato este es mi primer post y bueno tu tienes solo 39 post tambien

Aparte de todo eso? con lo referente a la funcion alguien puede ayudarme... ahi esta el codigo claro de lo que hace la funcion, no es hasta ningun punto, al hacer click al boton entra en la funcion Valida y compara 2 horas entre si.... divide la variable con el SPLIT donde estan los ":" y toma los minutos y las horas y despues con los otros campos comprueba si es pm o am eso es todo...

Como dije al principio del post el script funciona bien como estaba inicialmente, si alguien puede ayudarme a tomar el valor de los input a travez del formulario sin que de error estaria muy agradecido...
  #4 (permalink)  
Antiguo 04/05/2010, 00:35
 
Fecha de Ingreso: mayo-2010
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: No logro tomar los valores de un input para hacer una comparacion

Nadie sabe como arreglar eso?

Etiquetas: comparacion, input, tomar
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 14:51.