Foros del Web » Programando para Internet » Javascript »

break en js

Estas en el tema de break en js en el foro de Javascript en Foros del Web. Buenas, os cuento un problemilla que tengo tengo un formulario con un submit por post y un onsubmit para ejecutar unas validaciones js antes de ...
  #1 (permalink)  
Antiguo 04/05/2011, 12:05
 
Fecha de Ingreso: marzo-2010
Mensajes: 90
Antigüedad: 14 años, 8 meses
Puntos: 2
break en js

Buenas, os cuento un problemilla que tengo

tengo un formulario con un submit por post y un onsubmit para ejecutar unas validaciones js antes de enviar los datos por php
Código HTML:
 <form action="guardar.php" onsubmit="guardar()" enctype="multipart/form-data" method="post"> 
la funcion guardar realiza unas validaciones y la idea es que si alguna es incorrecta el codigo se detenga y no se ejecute el action.

he probado con break; y continue; que usandolo como en muchos ejemplos que he vto no me funcionan, hacen que el codigo js no funciones ejemplo(uso tb un poco de jquery pero no es causante de ningún problema por eso q postee en js):

Código:
if ($("#provi").attr("value") =="9999") {
		alert('seleccione provincia');
		break;
	} else  if(......
eso no solo no hace lo que yo quiero, si no que el codigo js deja de funcionar.

lo mas cercano que he podido hacer es algo asi:
Código:
if ($("#provi").attr("value") =="9999") {
		alert('seleccione provincia');
		document.getElementById("id_form").action = ' ';
	} else  if(......
y aunq se acerk no es lo que busco, ya que con esto recargo página debo enviar los valores temporales pro post etc.. y mi idea es simplemente que en caso de que una validación falle pare de ejecutarse el código.

una opción sería remover la propiedad action del form, pero no se como se hace eso.

Alguna ayuda? gracias!
  #2 (permalink)  
Antiguo 04/05/2011, 12:17
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: break en js

buenas,
break y continue solo funcionan si esta dentro de una estructura tipo bucle (for, while, do/while, for/in). en tu caso, lo que te ocupa es devolver un boolean false para cancelar el evento.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 04/05/2011, 12:33
 
Fecha de Ingreso: marzo-2010
Mensajes: 90
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: break en js

Gracias por contestar zerokilled, voy a probarlo.
  #4 (permalink)  
Antiguo 04/05/2011, 12:43
 
Fecha de Ingreso: diciembre-2009
Ubicación: Valparaíso
Mensajes: 118
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: break en js

debes colocar un return para el if
  #5 (permalink)  
Antiguo 04/05/2011, 12:45
 
Fecha de Ingreso: marzo-2010
Mensajes: 90
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: break en js

mmmmm, no he devido entenderte bien, he probado igualando el action a false pero redirecciona a la pagina false

Código:
if ($("#provi").attr("value") =="9999") {
		alert('seleccione provincia');
		document.getElementById("id_form").action = false;
	} else if (....
Como queda claro me faltan algunos conceptos y no te he seguido, he probado varias cosas mas creyendo que te referias a ellas pero ni las pongo por q deben de ser tan estúpidas como la que he puesto arriba
He sacado otra solución enviando los datos a una página invislbe intermedia q los devuelve al formulario, pero es muy sucio, me gustaria sacar algo más limpio

Podrias explicarmelo con más detalle?


Por si no me he esplicado yo bien, mi idea no es romper el if, ni la función q lo contiene ni nada del js, mi idea es eliminar el action del form.O hacer algo que impida que se ejecute.
  #6 (permalink)  
Antiguo 04/05/2011, 12:48
 
Fecha de Ingreso: marzo-2010
Mensajes: 90
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: break en js

Gracias por contestar tb javiercitox, pero veo que me he explicado mal, el título sobre todo ha sido muy confuso.

Mi idea no es romper el if, si no el action del form.
  #7 (permalink)  
Antiguo 04/05/2011, 12:55
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: break en js

tienes que poner return false en cualquier parte de la funcion que consideres de acuerdo a si deseas cancelar el envio del formulario. por ejemplo, si algun dato no cumple con una condicion dada en la validacion, entonces ejecutas return false.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #8 (permalink)  
Antiguo 04/05/2011, 13:20
 
Fecha de Ingreso: marzo-2010
Mensajes: 90
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: break en js

Pues gracias de nuevo zero, pero o sigo sin entenderos, o sigo sin explicarme

Código:
if ($("#provi").attr("value") =="9999") {
		alert('seleccione provincia');
		return false;
	} else if (....
esto rompe el if, pero el action del form sigue ejecutandose, a mi el if me da igual , que se ejecute entero si quiere, lo que quiero es acabar con el action del form

Código:
<form action="guardar.php" onsubmit="guardarCupon()" id="id_form" name="id_form" enctype="multipart/form-data" method="post">
  #9 (permalink)  
Antiguo 04/05/2011, 13:22
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Respuesta: break en js

Entonces estás haciendo algo mal, pon el código completo y será más fácil ayudarte.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #10 (permalink)  
Antiguo 04/05/2011, 13:32
 
Fecha de Ingreso: marzo-2010
Mensajes: 90
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: break en js

como digo solo rompe el if, no el action


Código HTML:
<script  language="javascript">
function guardar() {
.
.
.
.
if ($("#provi").attr("value") =="9999") {
		alert('seleccione provincia');
		return false;
	} else if ($("#pobla").attr("value") =="99999") {
		alert('seleccione población');
		return false;
	}  else if ($("#catego").attr("value") =="0") {
		alert('seleccione categoria');
		return false;
	} else if ....
        ....
       }
.
.
.
.
.
}
</script>
<html>
<form action="guardar.php" onsubmit="guardar()" id="forma" name="forma" enctype="multipart/form-data" method="post">
.
.
campos del form
.
.
<input type="submit" id ="guardar" name="guardar"class="botonNaranja" value="Guardar" >
</form>
</html> 
  #11 (permalink)  
Antiguo 04/05/2011, 13:40
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: break en js

claro, te falta devolver el valor devuelto por la invocacion de la funcion dentro del evento. o sea, en onsubmit estas invocando guardar. esta funcion devuelve un boolean y ese valor debes devolverlo a su vez al evento. event = "return func();".
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #12 (permalink)  
Antiguo 04/05/2011, 14:04
 
Fecha de Ingreso: marzo-2010
Mensajes: 90
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: break en js

aaaaaaaaaaaaaaaamigo, ahora si os he entendido, voy a probarlo y os cuento!


perfecto suave como la seda, exactamente lo que buscaba,
Muchas gracias a los 3!!!!!!,habeís acertado desde el principio, solo que yo no os entendia ;), yuhuu reparto de karma!!!!

por si a alguien le interesa queda así

Código HTML:
<script  language="javascript">
function guardar() {
.
.
.
.
if ($("#provi").attr("value") =="9999") {
		alert('seleccione provincia');
		return false;
	} else if ($("#pobla").attr("value") =="99999") {
		alert('seleccione población');
		return false;
	}  else if ($("#catego").attr("value") =="0") {
		alert('seleccione categoria');
		return false;
	} else if ....
        ....
       }
.
.
.
.
.
}
</script>
<html>
<form action="guardar.php" onsubmit="return guardar()" id="forma" name="forma" enctype="multipart/form-data" method="post">
.
.
campos del form
.
.
<input type="submit" id ="guardar" name="guardar"class="botonNaranja" value="Guardar" >
</form>
</html> 

Última edición por molinillo; 04/05/2011 a las 14:13

Etiquetas: js
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:37.