Foros del Web » Programando para Internet » Javascript »

Un problema con un formulario!

Estas en el tema de Un problema con un formulario! en el foro de Javascript en Foros del Web. Código HTML: <html> <head> <link rel= "stylesheet" href= "top.css" type= "text/css" > <script> function validar () { if (document.form1.email.value == "") { alert ("Debes completar ...
  #1 (permalink)  
Antiguo 24/02/2005, 10:30
Avatar de Jony.  
Fecha de Ingreso: noviembre-2004
Ubicación: Chile!
Mensajes: 497
Antigüedad: 19 años, 6 meses
Puntos: 0
Un problema con un formulario!

Código HTML:
<html>
<head><link rel="stylesheet" href="top.css" type="text/css">
<script>
function validar () {
if (document.form1.email.value == "") {
alert ("Debes completar con el email");
return 0;
}
if (document.form1.usuario.value < 5) {
alert ("Porfavor debes ingresar tu nombre de usuario, y debe ser mas de 5 caracteres");
return 0;
}
if (document.form1.clave.value < 6) {
alert ("El password debe ser de mas de 6 carácteres!");
return 0;
}
if (document.form1.nombre_web.value == "") {
alert ("Ingresa el nombre de la web");
return 0;
}
if (document.form1.url.value == "") {
alert ("Ingresa la dirección de la pagina");
return 0;
}
if (document.form1.url_banner.value == "") {
alert ("Ingresa la dirección del banner");
return 0;
}
if (document.form1.descripcion.value == "") {
alert ("Ingresa la descripción de la pagina");
return 0;
}
return 1;
}
</script>
</head>
<body>

<form name="form1" onSubmit="return validar()" method="post" action="registrado.php">
  <strong>Datos personales</strong>:<br />
  <br />
Nombre: 
  <input type="text" name="nombre" class="campos">
  <br />
Email: 
  <input type="text" name="email" class="campos">
  <br />
  Pais: 
  <input type="text" name="pais" class="campos">
  <br />
  Usuario: 
  <input type="text" name="usuario" class="campos">
  <br />
  Clave: 
  <input type="text" name="clave" class="campos">
  <br /><br />
  <strong>Datos de tu pagina web</strong>:<br />
  <br />
   Nombre de la pagina: 
  <input type="text" name="nombre_web" class="campos">
  <br />
  Direcci&oacute;n de la pagina: 
  <input type="text" name="url" class="campos">
  <br />
  Banner de la pagina: 
  <input type="text" name="url_banner" class="campos">
  <br />
  Descripci&oacute;n de la pagina: 
  <textarea name="descripcion" class="campos" cols="25"></textarea>
  <br /><br /><input type="submit" name="Submit" value="Submit" class="campos">
</form>
</body>
</html> 
El problema es el siguiente, supuestamente al faltar un campo por rellenar deberia salir una ventana y la ejecuta de manera correcta eso y sale una ventaba advitiendo por ejemplo "ingrese una clave con más de 6 caracteres como minimo", pero al apretar aceptar no se porque me envia al archivo donde se agrega la información a la base de datos...

Es decir, que debería mantenerse en el mesmo campo para poder rellenar lo que falta pero me lo manda al archivo donde se agrega los datos a la base de datos..

Ejemplo:
- el archivo del formulario se llama registrar.php
- el archivo que agregar los datos se envia a registrado.php

me desplaza a registrado.php

Saludos cordiales,
Jonathan
__________________
*CL* Jonathan / Te amo en todo momento y por siempre...
Webjimenez - Mis fotos personales - Hospedaje web a tu medida por $ 5 dolares
  #2 (permalink)  
Antiguo 24/02/2005, 18:53
Avatar de Jony.  
Fecha de Ingreso: noviembre-2004
Ubicación: Chile!
Mensajes: 497
Antigüedad: 19 años, 6 meses
Puntos: 0
Nadie tiene alguna respuesta que me pueda ayudar muchachos porfavor!!
__________________
*CL* Jonathan / Te amo en todo momento y por siempre...
Webjimenez - Mis fotos personales - Hospedaje web a tu medida por $ 5 dolares
  #3 (permalink)  
Antiguo 24/02/2005, 19:41
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Es porque lo estás haciendo con onsubmit y eso puede fallar, yo lo que haría es solamente llamar a la función de validación con el botón de enviar pero que sea botón común (Button y no submit).

y en la función coloco justo después de cada uno de los alert un return false, cosa que si hay un problema el script deje de ejecutarse.

y en la última línea del script colocaría un document.formulario.submit();
Justo donde tu tienes el return 1

Con lo cual sabes que solamente se enviará la info SI y solo SI no encuentra algún problema en las validaciones anteriores

Se entiende ?
Espero que te sirva
Saludos
__________________
Esteban Quintana

Última edición por monoswim; 24/02/2005 a las 19:43
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 01:18.