JavaScript - Ayuda Validar campos de texto de un formulario dinamico

   
Vista:

Ayuda Validar campos de texto de un formulario dinamico

Publicado por Sabin (1 intervención) el 07/01/2012 05:32:44
Buenas me encontraba incursionando en el tema de los formularios dinamicos hasta que al querer validarlos me vi imposibilitado ya que con cada campo de texto que se agrega su nombre varia, es decir en mi caso cada vez que se agrega un campo los nombres se comportan asi:

text1
text2
text3
text..


por lo que no tengo idea de como poder recorrerlos y detectar si alguno esta vacio.

Dejo el codigo:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<html>
<head>
<title>Crear input file</title>
<script type="text/javascript">
 
num=0;
function crear(obj) {
  num++;
  document.form1.contador.value = num;
  fi = document.getElementById('fiel');
 contenedor = document.createElement('div');
  contenedor.id = 'div'+num;
  fi.appendChild(contenedor);
 
  ele = document.createElement('input');
  ele.type = 'text';
  ele.name = 'text'+num;
  contenedor.appendChild(ele);
 
  ele = document.createElement('input');
  ele.type = 'button';
  ele.value = 'Borrar';
  ele.name = 'div'+num;
  ele.onclick = function () {borrar(this.name)}
  contenedor.appendChild(ele);
}
function borrar(obj) {
  fi = document.getElementById('fiel');
  fi.removeChild(document.getElementById(obj));
  num--;
}
</script>
</head>
<body>
<form name="form1" method="POST" action="lalala.php">
<input type="button" value="Crear" onclick="crear(this)">
<fieldset id="fiel">
</fieldset>
<input type="hidden" name="contador" value="" />
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Enviar">
</form>
</html>



Si alguien sabe como orientarme desde ya muchas gracias :D
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda Validar campos de texto de un formulario dinamico

Publicado por nacho (16 intervenciones) el 07/01/2012 13:14:41
1. obtenemos un array de todos los elementos de etiqueta INPUT.
2. recorremos el array
3. filtramos aquellos que sean type="text"
4. hacemos lo que queramos con cada uno de esos controles

// 1
controles = getElementsByTagName('input');
// 2
for ( i=0; i<controles.length; i++){
control = controles[i];
// 3
if (control.type == 'text'){
// 4... hacer la validación acá. Pongo ejemplo para mostrar valor...
alert('El valor de '+control.id+' es '+control.value);
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda Validar campos de texto de un formulario dinamico

Publicado por Sabin (1 intervención) el 07/01/2012 20:40:01
Perfecto!!! Con ese guia clarisima y buscando un poco mas logre recorrer los elementos text del formulario y leer que value tenian, y en caso de que al darle submit si algun campo intentaba enviar algun value vacio no se envie nada, ahora solo falta generar algun efecto en los campos que queden vacios, pero en fin quedo bastante funcional.

Aca el codigo de la funcion de validacion que tengo hasta el momento:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function verificar()
{
var rellenados=true;
fi = document.getElementById("fiel");
controles = fi.getElementsByTagName('input');
for ( i=0; i<controles.length; i++){
control = controles[i];
if (control.type == 'text'){
if (control.value=="") {
rellenados=false;
}
}
}
return rellenados;
}


Muchas gracias nacho.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar