Foros del Web » Programando para Internet » Javascript »

quiero romper ciclo para q si hay un error no envia

Estas en el tema de quiero romper ciclo para q si hay un error no envia en el foro de Javascript en Foros del Web. hola necesito romper el ciclo! lo que trato de hacer es que al encontrar el error se rompe el ciclo del while y no entre ...
  #1 (permalink)  
Antiguo 14/05/2010, 12:51
 
Fecha de Ingreso: febrero-2010
Ubicación: valencia
Mensajes: 146
Antigüedad: 14 años, 2 meses
Puntos: 3
quiero romper ciclo para q si hay un error no envia

hola necesito romper el ciclo!
lo que trato de hacer es que al encontrar el error se rompe el ciclo del while
y no entre retornando false y no envie el formulario

y si llega al final del while envia el formulario en mi caso coloque la pagina de google aqui esta el codigo


como se debe hacer?


<HTML>
<HEAD>
<TITLE> prueba de horas y am y pm</TITLE>

<SCRIPT LANGUAGE="JavaScript">


function CompararHoras(sHora1,sHora2,viam,vipm,result) {

var arHora1 = sHora1.split(":");
var arHora2 = sHora2.split(":");
var viam;
var vipm;

// Obtener horas y minutos (hora 1)
var hh1 = parseInt(arHora1[0],10);
var mm1 = parseInt(arHora1[1],10);

// Obtener horas y minutos (hora 2)
var hh2 = parseInt(arHora2[0],10);
var mm2 = parseInt(arHora2[1],10);

// Comparar MD5: bef463d2dca2d7da202a2c3d58c22d13

////////////////////primer if comprara si el primer listbox es AM si es asi lo acepta/////////////////////////////////

if (viam<vipm)
{

return "Hora correcta";
}

else

{

////////////////////segundo if comprara si el primer listbox es PM si es asi NO lo acepta/////////////////////////////////

if (viam>vipm)
{
return "Hora incorrecta";
return (result=false);
}

else

{

////////////////////Tercer if comprara si el primer o segundo listbox es igual si es asi lo acepta/////////////////////////////////

if (viam==vipm)
{

///////////////////////////si las horas del primer texbox es menor a las del segundo acepta////////////////////

if (hh1<hh2 || (hh1==hh2 && mm1<mm2))
return "Hora correcta";

else

//////////////////si las horas del primer texbox son mayores no lo acepta pero si las horas son iguales y los minutos del/////
//////////////////primero son mayor o igual que el segundo de igual manera no lo acepta/////////////////////////////////////

if (hh1>hh2 || (hh1==hh2 && mm1>=mm2))
return "Hora incorrecta";
return (result=false);

}
}
}
// "[/^(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])/]"

}

function fecha(a){

//onChange="alert(CompararHoras(h1.value,h2.value,va r1.value,var2.value));"

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])/$";
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))
alert(" MALO");
return (result=false);

}

</SCRIPT>

</HEAD>

<BODY>
<form action="http://www.google.co.ve" method="post">
<p>hora inicio
<INPUT TYPE="text" NAME="hini1" value="08:15" id="hini1" onBlur="return fecha(this)">
<label>
<select name="vam1" size="1" id="vam1">

<option>1</option>
<option>2</option>
</select>
</label>
<BR>
hora final<INPUT TYPE="text" NAME="hfin1" value="09:30" id="hfin1" onBlur="return fecha(this)">
<label>
<select name="vpm1" size="1" id="vpm1">
<option>1</option>
<option>2</option>
</select>
</label>
</p>
<p>&nbsp;</p>
<p>hora inicio
<INPUT TYPE="text" NAME="hini2" value="08:15" id="hini2" onBlur="return fecha(this)">
<label>
<select name="vam2" size="1" id="vam2">
<option>1</option>
<option>2</option>
</select>
</label>
<BR>
hora final
<INPUT TYPE="text" NAME="hfin2" value="09:30" id="hfin2" onBlur="return fecha(this)">
<label>
<select name="vpm2" size="1" id="vpm2">
<option>1</option>
<option>2</option>
</select>
</label>
</p>
<p>&nbsp;</p>
<p>hora inicio
<INPUT TYPE="text" NAME="hini3" value="08:15" id="hini3" onBlur="return fecha(this)">
<label>
<select name="vam3" size="1" id="vam3">
<option>1</option>
<option>2</option>
</select>
</label>
<BR>
hora final
<INPUT TYPE="text" NAME="hfin3" value="09:30" id="hfin3" onBlur="return fecha(this)">
<label>
<select name="vpm3" size="1" id="vpm3">
<option>1</option>
<option>2</option>
</select>
</label>
</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
<INPUT TYPE="submit" NAME="forms" Value="Comparar horas" OnClick= "
var j=1;
var res=true;
while((j<4) && (res==true))
{
R1=document.getElementById('hini'+j).value;
R2=document.getElementById('hfin'+j).value;
R3=document.getElementById('vam'+j).value;
R4=document.getElementById('vpm'+j).value;
j++;
alert(CompararHoras(R1,R2,R3,R4,res));

}
">

</p>
</form>
</BODY>
</HTML>
  #2 (permalink)  
Antiguo 14/05/2010, 14:06
Avatar de linternazo  
Fecha de Ingreso: abril-2010
Mensajes: 76
Antigüedad: 14 años
Puntos: 0
Respuesta: quiero romper ciclo para q si hay un error no envia

Madre mía, vaya cacao....

A ver, para evitar que un formulario se envíe si no se cumple una condición tienes que hacer lo siguiente.

<form action="loquesea" onsubmit="return comprobar()">


Si la función comprobar() llega a un return true; el formulario se enviará.
Si la función comprobar() llega a un return false; el formulario no se enviará.

Etiquetas: ciclos
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 08:34.