Foros del Web » Programando para Internet » Javascript »

El formulario se me valida aunque esté erroneo y como añadir alguna validación mas

Estas en el tema de El formulario se me valida aunque esté erroneo y como añadir alguna validación mas en el foro de Javascript en Foros del Web. Antes de nada, pongo el código: Código: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Documento sin ...
  #1 (permalink)  
Antiguo 18/04/2011, 05:39
UsuarioArroba
Invitado
 
Mensajes: n/a
Puntos:
El formulario se me valida aunque esté erroneo y como añadir alguna validación mas

Antes de nada, pongo el código:

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<script>
function valida_envia(){ 
   	if (document.fvalida.form_nick.value.length==0){ 
      	 alert("Tienes que escribir su nick") 
      	 document.fvalida.form_nick.focus() 
      	 return 0; 
   	} 

	if (document.fvalida.form_comentario.value.length==0){
		alert("Es necesario escribir el comentario")
		document.fvalida.form_comentario.focus()
		return 0;
	}

   	//el formulario se envia 
   	alert("Muchas gracias por enviar el formulario"); 
   	document.fvalida.submit(); 
} 
</script>
</head>
<body>
<form name="fvalida" action="add.php" method="post">
    <label for="form_comentario"></label>
    <label for="form_nick"></label>
  Tu Nick:<br />
  <input type="text" name="form_nick" id="form_nick" />
<br />
Tu comentario:
<br />
    <textarea name="form_comentario" id="form_comentario" cols="80" rows="5"></textarea>
    <input type="submit" name="form_enviar" id="form_enviar" value="Enviar"  onclick="valida_envia()" />
</form>
</body>
</html>
Esto es lo que he logrado hacer hasta el momento, además del fichero add.php, que me introduce los datos en mysql. Lo que sucede con este código es lo siguiente. Al pulsar enviar, sin haber escrito nada en ningún campo, lo envía, cuando debería dar el mensaje y no continuar.

Tambien quisiera aprovechar el mensaje para que, sobre este mismo código, me orientarais para agregarle una validación con la que comprobar que el usuario no haya introducido los caracteres < y >.

Por último, estaría interesante si pudiera ponerle un pequeño sistema de Captcha, que no sea muy complejo. Si esto último es una lata, le pondría una tontería tipo "Introduce el resultado de 2 + 2 con letras"

Desde ya, os doy las gracias anticipadas por vuestra ayuda.

Con javascript soy un caso perdido.
  #2 (permalink)  
Antiguo 18/04/2011, 06:21
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: El formulario se me valida aunque esté erroneo y como añadir alguna valida

lo del captcha, lo has de solucionar tú
Cita:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<script>
function valida_envia(f){
if ((f.form_nick.value.length==0) || (f.form_nick.value.indexOf('>') !=-1) || (f.form_nick.value.indexOf('<') != -1)){
alert("Tienes que escribir su nick");
f.form_nick.focus();
return false;
}

if (f.form_comentario.value.length==0){
alert("Es necesario escribir el comentario");
f.form_comentario.focus();
return false;
}

//el formulario se envia
alert("Muchas gracias por enviar el formulario");

}
</script>
</head>
<body>
<form name="fvalida" action="add.php" method="post" onsubmit="return valida_envia(this);">
<label for="form_comentario"></label>
<label for="form_nick"></label>
Tu Nick:<br />
<input type="text" name="form_nick" id="form_nick" />
<br />
Tu comentario:
<br />
<textarea name="form_comentario" id="form_comentario" cols="80" rows="5"></textarea>
<input type="submit" name="form_enviar" id="form_enviar" value="Enviar" />
</form>
</body>
</html>
  #3 (permalink)  
Antiguo 18/04/2011, 07:45
UsuarioArroba
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: El formulario se me valida aunque esté erroneo y como añadir alguna valida

Muchas gracias por tu respuesta IsaBelM, es perfecta. Lo del captcha, ya vere como lo hago, pero con tu ayuda, ya casi puedo publicar mi web . Saludos.

Etiquetas: formulario, validar
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:12.