Foros del Web » Programando para Internet » Javascript »

Validar campos de texto de un formulario dinamico

Estas en el tema de Validar campos de texto de un formulario dinamico en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 06/01/2012, 19:19
 
Fecha de Ingreso: marzo-2008
Mensajes: 60
Antigüedad: 16 años
Puntos: 0
Validar campos de texto de un formulario dinamico

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:


Código HTML:
<html> 
<head>
<title>Crear input file</title>
<script type="text/javascript"> 
Código Javascript:
Ver original
  1. num=0;
  2. function crear(obj) {
  3.   num++;
  4.   document.form1.contador.value = num;
  5.   fi = document.getElementById('fiel');
  6.  contenedor = document.createElement('div');
  7.   contenedor.id = 'div'+num;
  8.   fi.appendChild(contenedor);
  9.  
  10.   ele = document.createElement('input');
  11.   ele.type = 'text';
  12.   ele.name = 'text'+num;
  13.   contenedor.appendChild(ele);
  14.  
  15.   ele = document.createElement('input');
  16.   ele.type = 'button';
  17.   ele.value = 'Borrar';
  18.   ele.name = 'div'+num;
  19.   ele.onclick = function () {borrar(this.name)}
  20.   contenedor.appendChild(ele);
  21. }
  22. function borrar(obj) {
  23.   fi = document.getElementById('fiel');
  24.   fi.removeChild(document.getElementById(obj));
  25.   num--;
  26. }
Código HTML:
</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
  #2 (permalink)  
Antiguo 07/01/2012, 11:51
 
Fecha de Ingreso: marzo-2008
Mensajes: 60
Antigüedad: 16 años
Puntos: 0
Respuesta: Validar campos de texto de un formulario dinamico

Bueno hasta ahora logre añadirle una funcion en la cual recorro y recojo el value de todos los campos text creados dinamicamente, el problema ahora es que no sabria crear la condicion de que en el caso de que se envie algun value vacio advierta esta situacion y no envie hasta tener todos completos.

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

Código Javascript:
Ver original
  1. function verificar()
  2. {
  3. fi = document.getElementById("fiel");
  4. controles = fi.getElementsByTagName('input');
  5. for ( i=0; i<controles.length; i++){
  6. control = controles[i];
  7. if (control.type == 'text'){
  8.     //ACA DEBERIA HACER LA VALIDACION PARA EL CASO QUE SE ENVIE ALGUN CAMPO VACIO
  9.     alert('El valor de '+control.name+' es '+control.value); //Muestro nombres y valores de los campos creados para comprobar que los recorra.
  10. }
  11. }
  12. }
  #3 (permalink)  
Antiguo 07/01/2012, 13:02
 
Fecha de Ingreso: diciembre-2011
Mensajes: 98
Antigüedad: 12 años, 4 meses
Puntos: 29
Respuesta: Validar campos de texto de un formulario dinamico

Creo que asi te podria funcionar:

Código:
<form name="form1" method="POST" action="lalala.php" onsubmit="return verificar()">
Código Javascript:
Ver original
  1. function verificar()
  2. {
  3. var rellenados=true;
  4. fi = document.getElementById("fiel");
  5. controles = fi.getElementsByTagName('input');
  6. for ( i=0; i<controles.length; i++){
  7. control = controles[i];
  8. if (control.type == 'text'){
  9. if (control.value=="") {
  10. rellenados=false;
  11. }
  12. }
  13. }
  14. return rellenados;
  15. }
  #4 (permalink)  
Antiguo 07/01/2012, 13:35
 
Fecha de Ingreso: marzo-2008
Mensajes: 60
Antigüedad: 16 años
Puntos: 0
Respuesta: Validar campos de texto de un formulario dinamico

Perfecto! Ya solo envia los datos si ningun campo envia valores vacios, ahora a buscar como generar algun efecto en los campos vacios.

Muchas gracias nilburcion, quedo funcionando perfecto.
  #5 (permalink)  
Antiguo 07/01/2012, 14:07
 
Fecha de Ingreso: diciembre-2011
Mensajes: 98
Antigüedad: 12 años, 4 meses
Puntos: 29
Respuesta: Validar campos de texto de un formulario dinamico

Si quieres puedes hacer que cuando un campo este vacio se quede de color rojo con este código:

Código:
<style>
.error{
background-color:#F30;
}

.normal{
background-color:#FFF;
}
</style>
y cambia el anterior script po este:

Código:
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;
control.className="error";
}else{
control.className="normal";
}
}
}
return rellenados;
}
  #6 (permalink)  
Antiguo 07/01/2012, 14:42
 
Fecha de Ingreso: marzo-2008
Mensajes: 60
Antigüedad: 16 años
Puntos: 0
Respuesta: Validar campos de texto de un formulario dinamico

Exelente va perfecto.

Gracias de nuevo me ayudaste mucho.

Etiquetas: campos, dinamico, formulario, html, input, php
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 18:57.