Foros del Web » Programando para Internet » Javascript »

Validación formulario dinámico

Estas en el tema de Validación formulario dinámico en el foro de Javascript en Foros del Web. Buenas cracks, tengo un problemilla con un javascript. Tengo un formulario el cual se genera dinámicamente, por lo que nunca sé a priori cuántos elementos ...
  #1 (permalink)  
Antiguo 07/03/2011, 12:27
 
Fecha de Ingreso: agosto-2009
Mensajes: 216
Antigüedad: 14 años, 8 meses
Puntos: 3
Validación formulario dinámico

Buenas cracks, tengo un problemilla con un javascript.

Tengo un formulario el cual se genera dinámicamente, por lo que nunca sé a priori cuántos elementos va a contener, son siempre campos de texto. Lo que quiero es que si el usuario pincha en aceptar sin haber introducido ningún valor en ninguno de los campos de texto, le salte un alert avisándole de ello, y por supuesto, que no mande el formulario. En cambio, si ha rellenado al menos 1 campo, que mande el formulario y le aparezca un alert del tipo: Los datos se insertaron correctamente.

Hasta ahora tengo esto, pero no hace nada:

Código HTML:
<!-- Script para validar el formulario -->

<script type="text/javascript"> 

function validar()
{

	inputs = document.getElementsByTagName("ofertas");
	
	for (i=0; i<inputs.length; i++)
	{
    
		if (inputs[i].value == '')
    	{
      	
			alert("¡No has hecho ninguna oferta!");
    
		}else
		{
		
			return confirma();
			
		}
	}
}

 
        </script>

<script language="JavaScript">

function confirma () 
{
	
	alert("Oferta(s) realizada(s) satisfactoriamente. ¡Buena suerte!");

}

</script> 
Y en el form llamo tal que así:

Código PHP:
<form id="oferta" name="oferta" method="post" action="hacerOferta.php" onSubmit="return validar()">
.
.
.
.
.
<
input type="text" name="ofertas[]" id="ofertas[]" size="12" /> 
El javascript lo saqué de un par de foros, pero no he conseguido hacerlo rular. Si pincho en aceptar, no salta el mensaje y envía el formulario vacío :(.

Gracias por anticipado.
  #2 (permalink)  
Antiguo 07/03/2011, 14:12
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: Validación formulario dinámico

getElementsByTagName espera que su argumento sea el nombre de un tag (por ejemplo, en tu caso, "input"), no el valor del atributo name, que es lo que te interesa. Para ello debes usar getElementsByName:
Código Javascript:
Ver original
  1. var inputs=document.getElementsByName('ofertas[]');
Por otro lado, adentro del for sólo debes actuar si encuentras que hay algún campo completo, y en ese caso salir de la ejecución de la función (disparas el alert y luego haces un "return true"), no debes hacer nada si encuentras un campo no completo, eso debes hacerlo luego del loop (si llega a ese punto es porque no hay ningún campo completo). Bah, entendí que querías hacer eso.
¡Suerte!
  #3 (permalink)  
Antiguo 08/03/2011, 09:33
 
Fecha de Ingreso: agosto-2009
Mensajes: 216
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Validación formulario dinámico

Muchísimas gracias, me funcionó a la perfección!!

Un saludo!

Etiquetas: formulario, validar
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 08:12.