Foros del Web » Programando para Internet » Javascript »

Validar formulario dinamico

Estas en el tema de Validar formulario dinamico en el foro de Javascript en Foros del Web. Hola a todos, estoy intentando validar un formulario dinamico que tengo creado con JSP y html, pero me surgen una serie de problemas y estoy ...
  #1 (permalink)  
Antiguo 25/05/2007, 16:11
 
Fecha de Ingreso: mayo-2007
Mensajes: 33
Antigüedad: 17 años
Puntos: 0
Validar formulario dinamico

Hola a todos, estoy intentando validar un formulario dinamico que tengo creado con JSP y html, pero me surgen una serie de problemas y estoy atascado.
El formulario que tengo que validar tiene una longitud de filas variable, bien, en la funcion que valida rescato ese valor e intento hacer un bucle para controlar cada campo de cada fila.

El formulario podria ser de personas, entonces cada persona tendra los campos nombre, apellidos y edad pongamos...

Suponiendo que tendriamos 3 personas, nos quedaria:

Nombre1, Apellidos1, Edad1
Nombre2, Apellidos2, Edad2
Nombre3, Apellidos3, Edad3

Sabiendo la cuenta (3) podriamos controlar con el bucle cada fila, pero mi pregunta es: ¿Como rescatamos el valor de cada campo de cada fila?
es decir en:

var nombre= nombre(i)
Siendo i la variable de control del bucle

¿Como recojo o concateno el nombre del campo con la variable de control?

¿Hay alguna otra forma de hacer esto?

Muchas gracias por la atencion, un saludo.
  #2 (permalink)  
Antiguo 25/05/2007, 16:36
 
Fecha de Ingreso: febrero-2004
Ubicación: Resistencia - Argentina
Mensajes: 299
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: Validar formulario dinamico

que tipo de campos son los que tenes que validar? sin son de tipo text podes obtenerlos con getElementsByTagName, con eso obtendrias un arreglo con todos los campos, de ahi solo tendrias que recorrerlos con un for e ir preguntando por el que el value sea distinto de vacio
  #3 (permalink)  
Antiguo 25/05/2007, 16:37
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: Validar formulario dinamico

Hola:

Puedes poner la cadena entrecorchetada dependiendo del form...

document.forms.elForm["Nombre" + i].value...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 25/05/2007, 16:45
Avatar de creattive  
Fecha de Ingreso: febrero-2007
Ubicación: Bs.As.
Mensajes: 34
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Validar formulario dinamico

Buenas, me sumo a la consulta de maki20, pero a diferencia de el, yo tengo una funcion que valida texto, pero esta funcion puede ser invocada por varios tag`s diferentes.

Como averiguo el name="" del tag que llamo a esa funcion??, para poder asignar un valor a traves de document.all.?.value=valor

Saludos y gracias
  #5 (permalink)  
Antiguo 25/05/2007, 16:49
 
Fecha de Ingreso: febrero-2004
Ubicación: Resistencia - Argentina
Mensajes: 299
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: Validar formulario dinamico

Cita:
Como averiguo el name="" del tag que llamo a esa funcion??, para poder asignar un valor a traves de document.all.?.value=valor
tenes que ponerle id a los campos y en la llamada onclick="limpiar(idcampo)", asi despues con getelementbyid sabes que campo limpiar
  #6 (permalink)  
Antiguo 25/05/2007, 16:59
Avatar de creattive  
Fecha de Ingreso: febrero-2007
Ubicación: Bs.As.
Mensajes: 34
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Validar formulario dinamico

Tal vez no me esplaye demasiado,....mi form no ejecuta la validacion en un boton, la hace en cada onblur=funcionValidar().

Algunos ejecutan la funcion validarText y otros validarNum. Una vez ejecutada la funcion en el caso de que los datos no sean correctos quiero que limpie el campo que llamo a la funcion con un document.all.namedelcampo.value="", pero no se obtener el name que llamò a la funcion, sin este dato solo puedo borrar un solo campo.

Gracias por tu respuesta Roly
  #7 (permalink)  
Antiguo 25/05/2007, 17:06
 
Fecha de Ingreso: febrero-2004
Ubicación: Resistencia - Argentina
Mensajes: 299
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: Validar formulario dinamico

en la llamada pone la referencia al campo, onblur=funcionValidar(this)
con esto despues podes usar this.name o this.id y limpiar el campo, aca te dejo un ejemplo que limpia el text si es igual a 1234

Cita:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script>
function limpiar(campo){
if(campo.value=="1234"){
document.getElementById(campo.name).value = "";
}
}
</script>
</head>

<body>

<input type="text" id="textoprueba1" name="textoprueba1" onblur="limpiar(this)" />
</body>
</html>

Última edición por Roly; 25/05/2007 a las 17:13
  #8 (permalink)  
Antiguo 25/05/2007, 17:12
 
Fecha de Ingreso: mayo-2007
Mensajes: 33
Antigüedad: 17 años
Puntos: 0
Re: Validar formulario dinamico

Gracias a todos por contestar, ya lo he solucionado con la solucion del corchete para concatenar el nombre del campo con la variable de control tal que asi:

if(formulario["fungible"+i].value==""){
alert("EL campo fungible no se relleno");
return(false);
}

creattive ¿no seria mejor que crearas una funcion general que invoques en un submit del formulario? y luego en cada campo del formulario le asignas un =="", si es que te he entendido bien...porque no se muy bien lo que quieres decir

Salu2 y nuevamente gracias a todos.
  #9 (permalink)  
Antiguo 25/05/2007, 17:16
Avatar de creattive  
Fecha de Ingreso: febrero-2007
Ubicación: Bs.As.
Mensajes: 34
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Validar formulario dinamico

OK lo pruebo y regreso.
  #10 (permalink)  
Antiguo 25/05/2007, 17:40
Avatar de creattive  
Fecha de Ingreso: febrero-2007
Ubicación: Bs.As.
Mensajes: 34
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Validar formulario dinamico

Roly este es mi codigo y por el momento no funka

Código HTML:
<script language="javascript"> 
function validarNum (datos) {                                                             
	var i, n;
	for(i=0;i<datos.length;i++){
	n =	datos.substr(i,1);
		if(n.charCodeAt()>=48 && n.charCodeAt()<=57){
			}//if	
			else{
				alert("ERROR!!: En este campo solo debe ingresar numeros, reingrese los datos")
				document.getElementById(datos).value="";
				return false;
				break;
				}
		 }
}
</script> 
El tag ya tiene el name y el id con el mismo valor. y en onblur ya le asigne funcion(this), pero no funciona.

Gracias
  #11 (permalink)  
Antiguo 26/05/2007, 00:29
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: Validar formulario dinamico

Hola:

Cita:
Iniciado por maki20 Ver Mensaje
Gracias a todos por contestar, ya lo he solucionado con la solucion del corchete para concatenar el nombre del campo con la variable de control tal que asi:

if(formulario["fungible"+i].value==""){
alert("EL campo fungible no se relleno");
return(false);
}

...

Salu2 y nuevamente gracias a todos.
Me alegro de que lo hayas entendido y te sirva

Cita:
Iniciado por creattive Ver Mensaje
Roly este es mi codigo y por el momento no funka

Código HTML:
<script language="javascript"> 
function validarNum (datos) {                                                             
	var i, n;
	for(i=0;i<datos.length;i++){
	n =	datos.substr(i,1);
		if(n.charCodeAt()>=48 && n.charCodeAt()<=57){
			}//if	
			else{
				alert("ERROR!!: En este campo solo debe ingresar numeros, reingrese los datos")
				document.getElementById(datos).value="";
				return false;
				break;
				}
		 }
}
</script> 
El tag ya tiene el name y el id con el mismo valor. y en onblur ya le asigne funcion(this), pero no funciona.

Gracias
Cuando pones this lo que indicas con ese this es el tag completo, entonces al recoger los datos en tu función, debes especificar el nombre del atributo que quieres controlar:

Código:
function validarNum (datos) {                                                             
// datos.name = el atributo name;
// datos.value = el value...
// tu bucle sería:
	for(i=0;i<datos.value.length;i++){
...
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #12 (permalink)  
Antiguo 26/05/2007, 11:56
Avatar de creattive  
Fecha de Ingreso: febrero-2007
Ubicación: Bs.As.
Mensajes: 34
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Validar formulario dinamico

Caricatos, Roly, Maki20 Funciona todo OK!! 1000 gracias!! por la ayuda!

Espero retribuirla en algun momento!

Saludos
  #13 (permalink)  
Antiguo 04/12/2008, 18:05
 
Fecha de Ingreso: noviembre-2008
Mensajes: 1
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Re: Validar formulario dinamico

Cita:
Iniciado por maki20 Ver Mensaje
Gracias a todos por contestar, ya lo he solucionado con la solucion del corchete para concatenar el nombre del campo con la variable de control tal que asi:

if(formulario["fungible"+i].value==""){
alert("EL campo fungible no se relleno");
return(false);
}

creattive ¿no seria mejor que crearas una funcion general que invoques en un submit del formulario? y luego en cada campo del formulario le asignas un =="", si es que te he entendido bien...porque no se muy bien lo que quieres decir

Salu2 y nuevamente gracias a todos.


Hola maki20

Lo probaste en Mozilla Firefox???
A mi solo me funciona en Internet Explorer. alguien tiene uno que funcione en Mozilla??

un saludo.
  #14 (permalink)  
Antiguo 05/12/2008, 00: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
Respuesta: Validar formulario dinamico

Hola masimo, bienvenido a los foros :

Si referencias bien el formulario, el código funciona bien en todos los navegadores, por lo que creo que ese es el problema.

Como se trata de un tema viejo, se cierra, y si sigues con problemas no dudes en crear un tema nuevo, explicando el problema con más detalles.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 08:55.