Foros del Web » Programando para Internet » Javascript »

validar en la misma página

Estas en el tema de validar en la misma página en el foro de Javascript en Foros del Web. hola. creo que esto viene aquí, puesto que utilizo para ello javascript. bueno, os cuento. a través de un script, trato de validar campos vacios ...
  #1 (permalink)  
Antiguo 02/04/2007, 06:25
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
validar en la misma página

hola. creo que esto viene aquí, puesto que utilizo para ello javascript. bueno, os cuento. a través de un script, trato de validar campos vacios en un formulario, de tal modo que si el usuario pretende enviar determinados campos sin cumplimentarlos aparece en la pantalla un mensaje de error.
el tema está en que el mensaje de error que aparece viene de la forma Alerta de windows (es decir, el pop up con el mensaje de error que suele dar windows cuando algo no va bien).

yo lo que quiero es que me aparezca el mensaje de error advirtiendo del tema pero en la misma página debajo del campo que va en blanco. es decir, supongamos el campo 'nombre'. pues si el usuario lo deja en blanco, que aparezca el mensaje 'no puede dejar este campo en blanco' por ejemplo, pero debajo de la casilla para meter el campo nombre.

podéis ayudarme?
  #2 (permalink)  
Antiguo 02/04/2007, 08:00
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
Re: validar en la misma página

Que tal, a ver si te sirve este ejemplo!
Código HTML:
<script language="JavaScript">
function valida(){
	if(document.getElementById("nombre").value==''){
		document.getElementById("nombre2").style.visibility='visible';
		return false;
	}else{
		document.getElementById("nombre2").style.visibility='hidden';
	}		
}
</script>
<body>
<form name="form1" method="post" action="">
  <table width="75%" border="0">
    <tr><td>Nombre():</td><td><input type="text" id="nombre" onBlur="valida();"></td></tr>
    <tr><td></td>
      <td id="nombre2" style="visibility:hidden">Campo Nombre Obligatorio.</td>
    </tr>
    <tr><td>Apellidos:</td><td><input type="text" name="textfield2"></td></tr>
    <tr><td></td><td></td></tr>
  </table>
  <input type="button" name="valida	" value="Valida" onClick="valida();">
</form>
</body> 
__________________
Wow! No se que decir...
  #3 (permalink)  
Antiguo 02/04/2007, 08:36
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: validar en la misma página

Hola:

A pesar de ser un buen ejemplo, la forma de validar a mi me parece incorrecta... lo aconsejo constantemente... desde el tag form, con el evento submit (onsubmit) del form, y un botón submit normal (sin usar eventos adicionales...)

<form onsubmit="return validar (this)"...

Hay muchos mensajes sobre este tema, incluso en las FAQs hay un validador genérico muy bueno.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 02/04/2007, 08:41
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
Re: validar en la misma página

jeje esta bien tratare de tenerlo presente, aunque aveces me confundo un poquitin con eso, por que poner en el form la funcion? y el this que envia?
__________________
Wow! No se que decir...
  #5 (permalink)  
Antiguo 02/04/2007, 09:33
 
Fecha de Ingreso: febrero-2006
Mensajes: 134
Antigüedad: 18 años, 2 meses
Puntos: 10
Re: validar en la misma página

El this envía el objeto Form entero.
Parecido a document.forms['form1'] o document.getElementById('form1') suponiendo que el formulario se llame form1.

No es así?
  #6 (permalink)  
Antiguo 02/04/2007, 10:13
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 18 años, 7 meses
Puntos: 3
Re: validar en la misma página

bueno, creo eso lo entiendo, pero como mando a llamar u obtengo el valor de un objeto en específico, como el de un text? por ejemplo...
__________________
Wow! No se que decir...
  #7 (permalink)  
Antiguo 02/04/2007, 10:29
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: validar en la misma página

Cita:
Iniciado por zyon Ver Mensaje
jeje esta bien tratare de tenerlo presente, aunque aveces me confundo un poquitin con eso, por que poner en el form la funcion? y el this que envia?
Hola:

El envío lo hace un botón submit... como si no existiera javascript...

Por eso lo aconsejable es la doble validación... con javascript en el cliente, y en el servidor también validar, pensando que el receptor no tenga habilitado javascript...

This es útil para reutilizar el código, ya que referencia todo el formulario, así que cada campo se referencia a partir de ese this.

En base a tu código, trataré de hacer lo mismo:

function valida(f){
pasa = f.nombre.value != "";
document.getElementById("nombre2").style.visibilit y = (pasa) ? 'hidden':'visible';
return pasa;
}

Claro que el control debe poner name="nombre" (tal como lo tenías no había un control con un campo nombre... con el id no basta )

Y el formulario:

<form onsubmit="return valida(this)"...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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:32.