Foros del Web » Programando para Internet » Javascript »

Problema con un IF

Estas en el tema de Problema con un IF en el foro de Javascript en Foros del Web. Hola a todos, miren tengo un problema, estoy validando horarios, en un select tengo la hora de inicio y en otro la hora final, cada ...
  #1 (permalink)  
Antiguo 27/05/2008, 12:09
Avatar de charolastrazoe  
Fecha de Ingreso: febrero-2008
Ubicación: En el @itscomalcalco
Mensajes: 72
Antigüedad: 16 años, 2 meses
Puntos: 5
Exclamación Problema con un IF

Hola a todos, miren tengo un problema, estoy validando horarios, en un select tengo la hora de inicio y en otro la hora final, cada uno para un dia de la semana, los values de mis select corren desde 6 hasta 20, indicando que de 6:00 am a 8:00pm seran los horarios.

Recorro ambos select en javascript con un for que va desde 1 hasta 7, que son los dias de la semana, cuando hago una comparacion de ini>fin funciona bien en algunos casos pero no en todos cuando coloco valores erroneos...am no se si me puedo dejar entender, pero aqui les dejo los codigos de mis select y como los recorro en javascript

Este seria el codigo para el select de INICIO el dia domingo
Código PHP:
<select name="1ini" id="1ini">
  <
option value="-1">--:--</option>
  <
option value="6">6:00 am </option>
  <
option value="7">7:00 am </option>
  <
option value="8">8:00 am </option>
  <
option value="9">9:00 am </option>
  <
option value="10">10:00 am </option>
  <
option value="11">11:00 am </option>
  <
option value="12">12:00 pm </option>
  <
option value="13">1:00 pm </option>
  <
option value="14">2:00 pm </option>
  <
option value="15">3:00 pm </option>
  <
option value="16">4:00 pm </option>
  <
option value="17">5:00 pm </option>
  <
option value="18">6:00 pm </option>
  <
option value="19">7:00 pm </option>
  <
option value="20">8:00 pm </option>
</
select
Mis dias corresponden asi:
1-DOMINGO
2-LUNES
...
7-SABADO

Y el codigo del select FIN es el mismo, solo cambia con el nombre 1fin

Ahora, para recorrerlos y compararlos en javascript tengo esto:

Código PHP:
var i,valor_ini,valor_fin;

    var 
dias = new Array(7);
    
dias[0]="DOMINGO";
    
dias[1]="LUNES";
    
dias[2]="MARTES";
    
dias[3]="MIERCOLES";
    
dias[4]="JUEVES";
    
dias[5]="VIERNES";
    
dias[6]="SABADO";

     var 
i,ini,fin;
    for(
i=1;i<=7;i++){
       
ini document.getElementById(i+"ini").value;
       
fin document.getElementById(i+"fin").value;
       
       if(
ini>fin){
         
alert("La hora de inicio para el dia "+dias[i-1]+" es mayor que la hora final");
       }
       if(
ini == fin){
         
alert("La hora de inicio y la hora final son iguales para el dia "+dias[i-1]);
       }
     } 
Pero por ejemplo, cuando selecciono INICIO = 3:00pm (osea en el value, 15) y FIN = 7:00am (value igual a 7) no me manda el mensaje de error de que mi hora inicial es mayor que mi hora final, pero si los valores por ejemplo son: INICIO=8:00pm y FIN = 6:00pm si envia el error

Por favor alguien ayudeme!!
  #2 (permalink)  
Antiguo 27/05/2008, 13:51
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Problema con un IF

Probá:
Código PHP:
ini parseInt(document.getElementById(i+"ini").value);
fin parseInt(document.getElementById(i+"fin").value); 
  #3 (permalink)  
Antiguo 27/05/2008, 15:08
Avatar de charolastrazoe  
Fecha de Ingreso: febrero-2008
Ubicación: En el @itscomalcalco
Mensajes: 72
Antigüedad: 16 años, 2 meses
Puntos: 5
De acuerdo Respuesta: Problema con un IF

Gracias!! Me ha funcionado de maravilla!!

Supongo que los valores que traia de los select los tomaba como cadenas y por eso no se podian evaluar correctamente, cierto?

Gracias por responder a mi pregunta, no se si me supe explicar pero t solcion me funciono excelente!!
  #4 (permalink)  
Antiguo 27/05/2008, 15:10
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Problema con un IF

Es así, evaluaba como cadena. Me alegro que te haya servido ;)
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 09:47.