Foros del Web » Programando para Internet » Javascript »

Validacion de formulario sin alert

Estas en el tema de Validacion de formulario sin alert en el foro de Javascript en Foros del Web. Hola que tal estoy haciendo un formulario y quiero validarlo con javascript, lo que trato de hacer es por ejemplo a un campo de texto ...
  #1 (permalink)  
Antiguo 09/05/2011, 03:12
 
Fecha de Ingreso: abril-2008
Mensajes: 316
Antigüedad: 16 años
Puntos: 3
Validacion de formulario sin alert

Hola que tal estoy haciendo un formulario y quiero validarlo con javascript, lo que trato de hacer es por ejemplo a un campo de texto que sea mayor de 3 caracteres, si no lo es que me aparezca dentro de la mismo pagina "Mínimo tres caracteres", pero no quiero que salga en un alert sino en un div o en un span dentro de la misma pagina, he intentado lo siguiente:

Código:
<html>
	<head>
		<title></title>
		
		<script>
		
			function valida(){
				var obj = document.getElementById('errorusuario');
				obj.innerHTML="Minimo 4 caracteres";
			}
		
		</script>
				
	</head>
	
	<body>
	
		<form name="formusu">
			<div id="errorusuario"></div>
			<button onclick="valida()">Aceptar</button>		
		</form>
	</body>
</html>
Pero me actualiza toda la pagina y borra el mesaje.

No creo tener que usar ajax por que no hay peticion al servidor ni parece que sea necesaria, entonce que puedo hacer para que la pagina no se actualice y no desaparezca el mensaje.
  #2 (permalink)  
Antiguo 09/05/2011, 07:46
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Validacion de formulario sin alert

Yo creo que sería mejor asignar la función para cuando el form sea enviado. Es decir para el evento "onsubmit". Mirá este ejemplo:
Código HTML:
Ver original
  1.     <head>
  2.         <title></title>
  3.        
  4.         <script>
  5.        
  6.             function valida(){
  7.                 var obj = document.getElementById('errorusuario');
  8.                 obj.innerHTML="Minimo 4 caracteres";
  9.                 //return false si hay error, return true si no lo hay
  10.                 return false;
  11.             }
  12.        
  13.         </script>
  14.                
  15.     </head>
  16.    
  17.     <body onsubmit="return valida()">
  18.    
  19.         <form name="formusu">
  20.             <div id="errorusuario"></div>
  21.             <input type="text" />
  22.             <input type="submit" value="Validar" />
  23.         </form>
  24.     </body>
  25. </html>

Nesitás tener un input de tipo submit que llamará a la función. Si la función devuelve FALSE el form no es enviado. Si no hay errores la función valida() debe devolver TRUE y entonces el form se envía normalmente.
__________________
nahueljose.com.ar
  #3 (permalink)  
Antiguo 10/05/2011, 16:48
 
Fecha de Ingreso: abril-2008
Mensajes: 316
Antigüedad: 16 años
Puntos: 3
Respuesta: Validacion de formulario sin alert

Muchas gracias por tus respuestas solo tengo una dudas antes de implementar el código.

Es necesario que el onSubmit este en el body??

Es necesarios usar un input submit?? no podria hacerlo con un boton??
  #4 (permalink)  
Antiguo 10/05/2011, 16:50
 
Fecha de Ingreso: abril-2008
Mensajes: 316
Antigüedad: 16 años
Puntos: 3
Respuesta: Validacion de formulario sin alert

Cita:
Iniciado por rogeliomx Ver Mensaje
Muchas gracias por tus respuestas solo tengo una dudas antes de implementar el código.

Es necesario que el onSubmit este en el body??

Es necesarios usar un input submit?? no podria hacerlo con un boton??
Jeje ya hice las respectivas pruebas y funciono gracias por tu ayuda.
  #5 (permalink)  
Antiguo 11/05/2011, 11:21
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Validacion de formulario sin alert

Ups! Fue error mío, perdón. El onsubmit debe ir en el form! Me alegra que ya lo tengas funcionando igual :)
__________________
nahueljose.com.ar

Etiquetas: formulario, alerta
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 16:41.