Foros del Web » Programando para Internet » Javascript »

Validacion del form - Problemas al llamar funciones

Estas en el tema de Validacion del form - Problemas al llamar funciones en el foro de Javascript en Foros del Web. Bueno aca sigo luchando intentando validar por completo mi formulario EL problema esta cuando llamo las funciones dentro de la funcion validar form Digo que ...
  #1 (permalink)  
Antiguo 15/08/2007, 13:17
Avatar de Spookysama  
Fecha de Ingreso: agosto-2007
Mensajes: 42
Antigüedad: 16 años, 8 meses
Puntos: 0
Validacion del form - Problemas al llamar funciones

Bueno aca sigo luchando intentando validar por completo mi formulario
EL problema esta cuando llamo las funciones dentro de la funcion validar form
Digo que el problema esta ahi por q si saco los else donde llamo las funciones... el form anda (claro q mal validado)

Les copio el codigo de las funciones

ESpero que puedan darme una mano. Muchisimas gracias!

Código HTML:
//INICIO - Validar SUBIDA DE ARCHIVO 
//OBtiene la extension del archivo
  function GetExtension(imagen) 
	  {
	    var I = imagen.lastIndexOf(".");
	    return (I > -1) ? imagen.substring(I + 1, imagen.length).toLowerCase() : "";
	  }
//valida la imagen 
function ValidarImg() 
		{
		var form = imagen.upload;		
		var Ext = "";
		
		if ( form.imagen.value == "")
		     {
		      alert("No seleccionaste ninguna imagen");
		      return false;
		     }
		
		if (form.file.value != "") 
			{
		     Ext = GetExtension(form.imagen.value);
		      if (Ext != "jpeg" && Ext != "jpg" && Ext != "png" && Ext != "gif")
		          {
		          alert("El archivo  no es una imagen válida");
		          return false;
		          }
		      else
		          {return true; }
		     }
		}
//FIN - Validar SUBIDA DE ARCHIVO

//INICIO - Validar el  mail	
		function validarmail(contactomail)
		{
		var re  = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
		if (!re.test(contactomail)) 
			{
		    alert ("Dirección de email inválida");
		    form.contactomail.focus(); 
		    return false;
			}		
		}	
//FIN - Validar el  mail	

//INICIO  - validaciones de los campos del form
function Validar(form)
{
	//Campo contacto nombre que no este vacio
	if (form.contactonombre.value == "")
			  { 
				  alert("Por favor ingrese su nombre"); 
				  form.contactonombre.focus(); 
				  return false; 
			  }			  
	//Campo contacto mail que no este vacio
	if (form.contactomail.value == "")
			  { 
			  	alert("Por favor ingrese su dirección de e-mail"); 
			  	form.contactomail.focus(); 
			  		return false; 
			  }
	//Campo direccion que no este vacio
	if (form.direccion.value == "")
			  { 
			  	alert("Por favor ingrese la direccion"); 
			  	form.direccion.focus(); 
			  	return false; 
			  }
	 
	//Campo nombre del negocio que no este vacio
	if (form.nombre.value == "")
			  { 
			  alert("Por favor ingrese el nombre del negocio"); 
			  form.nombre.focus();
			  return false; 
			  }
	//Campo rubro que no este vacio
	if (form.rubro.selectedIndex==0)
			  { 
			   alert("Por favor ingrese el rubro");
			   form.rubro.focus(); 
			   return false;
			   }
	// Campo descripcion ninimo 20 maximo 300
	  if(form.descripcion.value.length < 20 || form.descripcion.value.length > 300)
			{
			alert("El campo descripcion debe contener entre 20 y 300 Caracteres"); 
			form.descripcion.focus(); 
			return false; 
			}	
		
			else
			{
				//llamo a validar imagen
				ValidarImg(); 
	  		}
			else
			 {
			 	//llamo a validar mail
				validarmail(this.form.contactomail);
			}
			else
			{	//envio el form
				form.submit();
			}
}
//FIN  - validaciones de los campos del form
  #2 (permalink)  
Antiguo 15/08/2007, 14:14
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Re: Validacion del form - Problemas al llamar funciones

Lo que pasa es que la sintaxis correcta es
if()
{}
else
{}
... Aca ya no puedes seguir poniendo mas else por que el interprete te marcara error, podrias poner un elseif:

Deberia funcionarte bien asi:
Código:
f(form.descripcion.value.length < 20 || form.descripcion.value.length > 300)
{
	alert("El campo descripcion debe contener entre 20 y 300 Caracteres");
	form.descripcion.focus();
	return false;
}
else
{
	if (ValidarImg() && validarmail(this.form.contactomail))
		form.submit();
       else 
               return false;
}
Sin animos de ofenderte ni desanimarte, pero pareciera que no has leido un manual de programacion (donde hablen de ciclos, if y esas cosas), repito sin ganas de ofender
  #3 (permalink)  
Antiguo 15/08/2007, 14:27
Avatar de Spookysama  
Fecha de Ingreso: agosto-2007
Mensajes: 42
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Validacion del form - Problemas al llamar funciones

Muchisimas gracias por tu ayuda

NO me ofendes. lei pero a veces una no se acuerda de todo y suele equivocarse.
Y mandar fruta con este tema de llamar funciones q al menos a mi se me complica bastante, mas cuando se esta iniciando

Yo probe esa forma q me decis vos pero sinembargo el formulario no se envia


pd. tenes algun buen manual?

Última edición por Spookysama; 15/08/2007 a las 14:34
  #4 (permalink)  
Antiguo 15/08/2007, 14:35
 
Fecha de Ingreso: marzo-2006
Mensajes: 83
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: Validacion del form - Problemas al llamar funciones

Creo que no se te está validando porque en la funcion validarmail te esta faltando
Código:
else
 {return true; }
Agregándole eso te tendría que funcionar de la forma que te dijo Sergestux

Saludos!
  #5 (permalink)  
Antiguo 15/08/2007, 16:13
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Re: Validacion del form - Problemas al llamar funciones

No se si sea que necesites un manual tan basico pero por si las dudas aca hay uno http://www.programacion.com/tutorial/introprog/
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:45.