Foros del Web » Programando para Internet » Javascript »

¿Cómo hacer un alert con varios mensajes de error?

Estas en el tema de ¿Cómo hacer un alert con varios mensajes de error? en el foro de Javascript en Foros del Web. Saludos. Tengo un dilema. Necesito validar unos campos de formulario y ahora tengo varios alert que suceden al momento de no cumplirse un requisito. Pero ...
  #1 (permalink)  
Antiguo 11/03/2009, 12:01
Avatar de SCY-FOX  
Fecha de Ingreso: septiembre-2007
Ubicación: Chile
Mensajes: 139
Antigüedad: 16 años, 7 meses
Puntos: 5
¿Cómo hacer un alert con varios mensajes de error?

Saludos.

Tengo un dilema. Necesito validar unos campos de formulario y ahora tengo varios alert que suceden al momento de no cumplirse un requisito. Pero cuando no se cumplen 2 o más, sólo me toma el ultimo error y usa ese alert solamente.

Tengo el siguiente código, pero cuando trato de concatenar los errores para que el alert me muestre solo 1 ventana de error pero con varios mensajes, me dice que está mal escrito.

Código:
//Validador de Formulario de ingreso de nuevos usuarios
function validar(form)
{
 var error = "";
 var mensaje	= "";
 //USERNAME
 if ( document.nuevo_usuario.username.value == "")
 	{
		var error = 1;
		document.nuevo_usuario.username.focus();	
	}

  if ( document.nuevo_usuario.password1.value == "")
 	{
		var error = 3;
		document.nuevo_usuario.password1.focus();	
	}

	//REPETIR PASSWORD
  if ( document.nuevo_usuario.password2.value == "")
 	{
		var error = 7;
		document.nuevo_usuario.password2.focus();	
	}
	
	
	//AMBOS PASSWORD
  if ( document.nuevo_usuario.password1.value != document.nuevo_usuario.password2.value)
 	{
		var error = 7;
		document.nuevo_usuario.password1.focus();	
	} 
	
	
	if ( error != "")
	{
		switch(error) 
		{
			case 1:  mensaje = "El campo USERNAME no puede estar vacio\n"; break
			case 2:  mensaje = "El campo PASSWORD no puede estar vacio\n"; break
			case 3:  mensaje =	"Debe volver a escribir el PASSWORD para validarlo\n"; break;
			case 4:  mensaje =	"El PASSWORD no se ha repetido correctamente\n"; break;
		}
		alert(mensaje);
		return(false);
		stop;
	}
	
	//SI LOS CAMPOS REQUERIDOS ESTAN COMPLETOS, SE ENVIA EL FORMULARIO
	document.nuevo_usuario.accion.value = 1;
	document.nuevo_usuario.submit();
}
¿Cómo puedo hacer para que se vayan juntando los mensajes de error y al final solo envie un alert con todos los errores en una misma ventana??
  #2 (permalink)  
Antiguo 11/03/2009, 12:19
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: ¿Cómo hacer un alert con varios mensajes de error?

Hola:

Por ejemplo, puedes usar un array para los errores (y porqué no para los mensajes)... aunque no sé la utilidad que le das a esa variable... pero por ejemplo solo con los mensajes podría ser:

var mensaje = [];
//USERNAME
if ( document.nuevo_usuario.username.value == "")
{
mensaje.push("El campo USERNAME no puede estar vacio\n");
}

//...

if (mensaje.length > 0) alert(mensaje.join("\n"));
return (mensaje.length == 0)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 11/03/2009, 13:00
Avatar de SCY-FOX  
Fecha de Ingreso: septiembre-2007
Ubicación: Chile
Mensajes: 139
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: ¿Cómo hacer un alert con varios mensajes de error?

Waa muchas gracias... que rápida respuesta. Vamos a probar y les cuento que tal.

Silla!
  #4 (permalink)  
Antiguo 11/03/2009, 14:48
Avatar de SCY-FOX  
Fecha de Ingreso: septiembre-2007
Ubicación: Chile
Mensajes: 139
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: ¿Cómo hacer un alert con varios mensajes de error?

Saludos.

Vengo a informarles que todo funcionó a la perfeccion luego del comentario del amigo moderador.

Código:
<script type="text/javascript">
//Validador de Formulario de ingreso de nuevos usuarios
function validar(form)
{
 var mensaje	= [];
 //USERNAME
 if ( document.nuevo_usuario.username.value == "")
 	{
		mensaje.push("El campo USERNAME no puede estar vacio\n");
		document.nuevo_usuario.username.focus();	
	}

  if ( document.nuevo_usuario.password1.value == "")
 	{
		mensaje.push("El campo PASSWORD no puede estar vacio\n");
		document.nuevo_usuario.password1.focus();	
	}

	//REPETIR PASSWORD
  if ( document.nuevo_usuario.password2.value == "")
 	{
		mensaje.push("Debe volver a escribir el PASSWORD para validarlo\n");
		document.nuevo_usuario.password2.focus();	
	}
	
	//AMBOS PASSWORD
  if ( document.nuevo_usuario.password1.value != document.nuevo_usuario.password2.value)
 	{
		mensaje.push("El PASSWORD no se ha repetido correctamente\n");
		document.nuevo_usuario.password1.focus();	
	} 
		
	if (mensaje.length > 0)
	{
		alert(mensaje.join("\n"));
		stop();
	} else {
			
			//SI LOS CAMPOS REQUERIDOS ESTAN COMPLETOS, SE ENVIA EL FORMULARIO
			document.nuevo_usuario.accion.value = 1;
			document.nuevo_usuario.submit();
	}
}
</script>
Muchas gracias denuevo!!

Silla!
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 04:53.