Foros del Web » Programando para Internet » Javascript »

Control de formulario

Estas en el tema de Control de formulario en el foro de Javascript en Foros del Web. ¡Muy buenas!. Tengo un problema con un pequeñísimo código javascript que controla el envío de un formulario. He buscado por internet (ya he usado el ...
  #1 (permalink)  
Antiguo 07/03/2007, 13:10
 
Fecha de Ingreso: febrero-2007
Mensajes: 23
Antigüedad: 17 años, 3 meses
Puntos: 0
Control de formulario

¡Muy buenas!. Tengo un problema con un pequeñísimo código javascript que controla el envío de un formulario.

He buscado por internet (ya he usado el puto google ) y por este foro, y he hecho pequeños ejemplos de lo que quiero utilizar en mi web, todo funciona bien hasta que lo inserto en mi web, entonces deja de funcionar.
Aparentemente el código está bien, lo he repasado mil veces, llevo 2 días y pico sólo con esto. Además como he dicho en otros ejemplos simples me funciona.

Se trata de controlar que un campo del formulario no esté vacio:

En el "head" del código HTML he enlazado el fichero javascript de la siguietne forma:

Código HTML:
<script language="javascript" src="js/control.js"> </script> 
El código del formulario es el siguiente:

Código HTML:
<form id="fconsulta" name="fconsulta" method="post" action="email.php" onsubmit="return comp_campos()">
					
<p>
Asunto: 
<br />
<input id="asunto" type="text" name="asunto"/>
</p>
					
<p>
Contenido:
<br />
<input id="contenido" type="textarea" name="contenido"/>
</p>
					
<p>
<input type="submit"  value="Enviar"/> <input type="reset" value="Borrar" />
</p>

</form> 
Y el código del fichero "control.js":

Código:
function comp_campos ( )
{

	
	if ( fconsulta.contenido.value == "" )
	{
		alert("El campo contenido no puede estar vacio");
	
		return false;
	}
	
	
	
	return true;

}
Sé que se han respondido cosas similares en el foro, de hecho ya digo que lo he buscado, pero a mi eso no me funciona

Muchisimas gracias.
  #2 (permalink)  
Antiguo 07/03/2007, 13:15
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Control de formulario

Hola mjba_82

Código:
if (document.fconsulta.contenido.value == "" )
y deja así el botón submit:
Código:
<input type="submit" value="Enviar"/>
No hace falta que llames a la función desde el botón, es suficiente con llamarla en el evento onsubmit del formulario.

Saludos,
  #3 (permalink)  
Antiguo 07/03/2007, 13:23
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Control de formulario

Hola:

Una buena forma de validar formulario es pasarlo como parámetro en la función validadora -return validar(this)-

Luego la función validadora es más fácil "re-utilizarla"

function comp_campos (f) {
valida = (f.contenido.valida != "")
if (!valida) alert("debe rellenar el contenido");
return valida;
}

JavierB: Es la segunda vez que me adelantas en pocos minutos

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 07/03/2007, 13:26
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Control de formulario

Cita:
Iniciado por caricatos
JavierB: Es la segunda vez que me adelantas en pocos minutos
Cierto, pero las respuestas no han sido las mismas. Estamos un poco descoordinados

Saludos,
  #5 (permalink)  
Antiguo 07/03/2007, 13:33
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Control de formulario

Cita:
Iniciado por JavierB Ver Mensaje
Cierto, pero las respuestas no han sido las mismas. Estamos un poco descoordinados

Saludos,
¡Je, je!... la verdad es que si me doy cuenta que está el tema "respondido", tan solo "complemento" la respuesta... y es lo que ha pasado... hay veces que respondo con alguna respuesta dada sin darme cuenta, pero no han sido los casos.

Saludetes
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 07/03/2007, 13:34
 
Fecha de Ingreso: febrero-2007
Mensajes: 23
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Control de formulario

Vaya qué rapidez. xDD

Pues he probado las dos cosas, y ninguna funciona.

Lo de poner if (document.fconsulta.contenido.value == "") ya lo había probado, de hecho lo encontré en un hilo de este mismo foro que tú respondiste xDDD

Lo de quitar del botón submit la llamada a función es un error mio que ya he editado, tienes razón, antes lo tenía con dos llamadas y ahora con una.

Pasar el formulario como parámetro de la función también lo probé porque lo leí por ahí, no recuerdo donde, pero tampoco me furula. Lo dejé sin parámetro para simplificarlo más, pero se agradece.

Pues va a ser que ni llama a la función, o el enlace está mal, porque me ha dado por poner en la funcion javascript un sólo alert (sin comprobaciones de campos ni nada) y cuando le doy a enviar no me salta, así que ahí estará el problema.

Muchas gracias por la ayuda, se agradecerá eternamente xD

EDITO: Ahora si que coje bien el código, porque me salta un alert que he metido al principio de la función, pero la comprobación del campo sigue sin funcionar. Bueno seguiré mirando, gracias. Qué raro es esto de javascript, si el código es idéntico...

Última edición por mjba_82; 07/03/2007 a las 13:42
  #7 (permalink)  
Antiguo 07/03/2007, 13:50
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Control de formulario

Hola:

No sé si hemos puesto algo mal, pero la teoría tendría que bastarte... pero por las dudas, fíjate en este código:

Código:
<html>
<head>
<title>
prueba
</title>
<script type="text/javascript">
function valida(f) {
 v = (f.contenido.value != "");
 if (!v) alert("no pasa la validación");
 return v;
}
</script>
</head>
<body >
<form action="http://www.caricatos.net/articulos/receptor.php" method="post" onsubmit="return valida(this)">
<textarea rows="10" cols="50" name="contenido" ></textarea>
<button type="submit" >enviar</button>
</form>
</body>
</html>
Cópialo, y pégalo en este probador: Probador

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 07/03/2007, 15:48
 
Fecha de Ingreso: febrero-2007
Mensajes: 23
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Control de formulario

Vaya gracias, ¡qué buena herramienta!
  #9 (permalink)  
Antiguo 09/03/2007, 06:22
cmc
 
Fecha de Ingreso: febrero-2003
Ubicación: Capital
Mensajes: 1.317
Antigüedad: 21 años, 2 meses
Puntos: 1
Re: Control de formulario

Hola gente estoy tratando de adaptar el codigo de CARICATOS pero para que valide mas de un campo y no puedo lograr que funcione alguien me puede dar una mano.
__________________
Claudio Caldareri
diseñador Multimedial
www.disemedios.com.ar
  #10 (permalink)  
Antiguo 09/03/2007, 06:28
cmc
 
Fecha de Ingreso: febrero-2003
Ubicación: Capital
Mensajes: 1.317
Antigüedad: 21 años, 2 meses
Puntos: 1
Re: Control de formulario

LO LOGRE
no es el mismo codigo pero funciona, si alguien quiere aportar alguna mejora sera bienvenida.

Código HTML:
function validar(f) { 
	var errorMsg = "";
	if (f.nombre.value== "") { 
		errorMsg += "\n\tNombre \t- Debe cargar el Nombre, es un dato obligatorio";
	}	
	if (f.apellido.value== "") { 
		errorMsg += "\n\tApellido \t- Debe cargar el Apellido, es un dato obligatorio";
	}	
	if (f.email.value== "") { 
		errorMsg += "\n\tE-mail \t- Debe cargar el Email, es un dato obligatorio";
	}	
	if (f.email2.value== "") { 
		errorMsg += "\n\tE-mail2 \t- Debe cargar el segundo Email, es un dato obligatorio";
	}
	if(f.email.value!="" && f.email2.value!=""){
  		if (f.email.value != f.email2.value) { 
			errorMsg += "\n\tConfirmación de E-mail \t- Los campos de email tienen que ser iguales";
  } 
  }
  if (errorMsg != ""){
		msg = "______________________________________________________________\n\n";
		msg += "ERROR!.\n";
		msg += "Por Favor revise los datos ingresados.\n";
		msg += "______________________________________________________________\n\n";
		errorMsg += alert(msg + errorMsg + "\n\n");
		return false;
	}
		return true;
}
__________________
Claudio Caldareri
diseñador Multimedial
www.disemedios.com.ar
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 07:23.