Foros del Web » Programando para Internet » Javascript »

Validacion de formulario

Estas en el tema de Validacion de formulario en el foro de Javascript en Foros del Web. Buenas tengo un problema con las validaciones en javascript. Tengo un formulario de contacto donde una vez hagan SUBMIT el codigo javascript tiene que assegurar-se ...
  #1 (permalink)  
Antiguo 15/07/2009, 16:55
 
Fecha de Ingreso: septiembre-2008
Mensajes: 211
Antigüedad: 15 años, 7 meses
Puntos: 2
Validacion de formulario

Buenas tengo un problema con las validaciones en javascript.
Tengo un formulario de contacto donde una vez hagan SUBMIT el codigo javascript tiene que assegurar-se de que no contengan campos en blanco i de que el correo electrònico sigue la estructura siguiente [email protected] para comprobar de que se trata de un correo electrònico.



Formulario

Código HTML:
<form name="contact" id='contact' method="post" action="contact.php" class='form_contact' onSubmit="return valida(this);">
Nombre<input type='text' name='name' id='name' size='40'> 
Correo<input type='text' name='mail' id='mail' size='40'>
Informacion<textarea name="description" id='description' cols="40" rows="10" ></textarea>
<input type="submit" name="Submit" value="Enviar">
</form> 

Codigo JavaScript

Código HTML:
function valida_correo(mail){
 var regx;
 regx = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/;
 return regx.test(mail);
}

// VALIDAR CAMPS EN BLANC I ESPAIS DEL FORMULARI		
function vacio(q) {  
        for ( i = 0; i < q.length; i++ ) {  
                if ( q.charAt(i) != " " ) {  
                        return true  
                }  
        }  
        return false  
}

function valida(F) {  
          
        if( vacio(F.name.value) == false ) {  
                alert("El campo Nombre debe rellenarse..")  
                return false }

        if( vacio(F.mail.value) == false ) {  
                alert("El campo Correo electrònico debe rellenarse.")  
                return false }	

	if(!valida_correo(F.mail.value) ){		   
		alert("Porfavor, debe ingresar una dirección de correo válida")
		document.mail.mail.focus()
		return false }

        if( vacio(F.description.value) == false ) {  
                alert("El campo Descrpición debe rellenarse.")  
                return false }
	else {  
                return false  }  
          
}  
  
  
    	</script> 

El Problema està en que detecta los campos en blanco i hace un return false però al comprobar el correo electrònico como incorrecto parece como si no hiciera el return false.

Haber si podeis ayudarmee! saludos!
  #2 (permalink)  
Antiguo 15/07/2009, 21:10
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Validacion de formulario

El problema está en:
Código Javascript:
Ver original
  1. document.mail.mail.focus()
Prueba cambiando por:
Código Javascript:
Ver original
  1. F.mail.focus()
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 16/07/2009, 02:27
 
Fecha de Ingreso: septiembre-2008
Mensajes: 211
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Validacion de formulario

Ia prové eso no funciona hermanoo! El aviso si que me lo da, pero dice el correo electrònico és incorrecto cuando és incorrecto, però cuando es correcto no hace nada.
  #4 (permalink)  
Antiguo 16/07/2009, 04:22
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Validacion de formulario

Hola

El problema está en esto

Cita:
return false }
else {
return false } // Debería de ser true

}

También te dejo esta validación de email

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
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 19:54.