Ver Mensaje Individual
  #11 (permalink)  
Antiguo 28/11/2008, 17:15
Avatar de scout_vlc
scout_vlc
 
Fecha de Ingreso: julio-2007
Ubicación: Valencia
Mensajes: 141
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: focus() no deja el foco en el campo activo?

NO sé si tiene que ver con la función focus() porque es un código que he cogido de un ejemplo, y aparece esa función.
El caso es que en el ejemplo si un campo está vacío sale una alerta, indicando que está vacío, pero no se envía el formulario...én mi ejemplo sale la alerta, y al aceptar la alerta, envía el form, con lo que se recarga la página, y vuelve a aparecer el form de nuevo, pero vacío, y el usuario tiene que volver a rellenar los campos.
¿Cómo hago para que no suceda esto y no se envíe el form hasta que se presiona el submit y están todos los campos rellenados??

Mi código HTML es este :

Código HTML:
<script language="JavaScript1.2" src="validar.js">
</script>

<form action="registrar.php" method="post" name="fregistro" enctype="multipart/form-data">
			
Nombre de usuario <input name="login" size="12" type="text" /> Contrase&ntilde;a  <input name="password" size="15" type="password" />
Confirmar contrase&ntilde;a:<input name="password1" size="15" type="password" /> 
Nombre  <input name="nombre" size="25" type="text" />
Apellidos <input name="apellidos" size="40" type="text" />
Direcci&oacute;n <textarea cols="20" name="direccion" rows="4"></textarea>
Correo electr&oacute;nico <input name="email" size="30" type="text" />
<input type="submit" value="REGISTRARSE" name="registrar" onclick="valida_envia()" class="boton">
<input type="reset" value="BORRAR" name="borrar" class="boton"> 
Y en el archivo JavaScript tengo esto:
Código:
function valida_envia(){ 
    //valido el nombre 
    if (document.fregistro.login.value.length==0){ 
       alert("¡ERROR! Tiene que escribir un nombre de usuario") 
       document.fregistro.login.focus() 
       return 0; 
    } 
    
    if (document.fregistro.password.value.length==0){ 
       alert("¡ERROR! Escriba una constraseña en el campo Contraseña") 
       document.fregistro.password.focus() 
       return 0; 
    } 
    if (document.fregistro.password1.value.length != document.fregistro.password.value.length){ 
       alert("¡ERROR! Las contraseñas no tienen el mismo número de caracteres") 
       document.fregistro.password1.focus() 
       return 0; 
    } 
    
    if (document.fregistro.nombre.value.length==0){ 
       alert("¡ERROR! Escriba su nombre en el campo Nombre") 
       document.fregistro.nombre.focus() 
       return 0; 
    } 

    if (document.fregistro.apellidos.value.length==0){ 
       alert("¡ERROR! Escriba sus apellidos en el campo Apellidos") 
       document.fregistro.apellidos.focus() 
       return 0; 
    } 

    if (document.fregistro.direccion.value.length==0){ 
       alert("¡ERROR! Tiene que escribir su dirección en el campo Dirección") 
       document.fregistro.direccion.focus() 
       return 0; 
    } 
    
    if (document.fregistro.email.value.length==0){ 
       alert("¡ERROR! Tiene que escribir una dirección de correo electrónico") 
       document.fregistro.email.focus() 
       return 0; 
    } 
    //el formulario se envia 
    alert("Muchas gracias por enviar el formulario"); 
    document.fregistro.submit(); 
}
¿Alguna ayuda??