Foros del Web » Programando para Internet » Jquery »

la validación no funciona para todos los campos

Estas en el tema de la validación no funciona para todos los campos en el foro de Jquery en Foros del Web. hola amigos del foro resolvi un problema y cai en otro ahora este es muy serio y estoy varado la cosa es que yo creo ...
  #1 (permalink)  
Antiguo 19/02/2013, 14:33
 
Fecha de Ingreso: enero-2013
Mensajes: 38
Antigüedad: 11 años, 9 meses
Puntos: 0
la validación no funciona para todos los campos

hola amigos del foro resolvi un problema y cai en otro ahora este es muy serio y estoy varado la cosa es que yo creo campos dinamicos con js y uso jquery para validar su contenido pero el detalle esta que solo funciona para el primero que creo y no para los dema e aqui el codigo cualquier ayuda es muy agradecido :
Código:
var counter= 0;
var edad2="t";
var edad1="e";
var edad3="z";
var edad4="k";
var edad5="m";
var counterz=0;
var limit =4;
var edad;
var counterp=0;
var h1;
var h;
var h2;
function addInput(divName){

     if (counter > limit)  {
          alert("¡NUMERO MAXIMO DE DESCENDIENTES ALCANSADO!");
		 
     }
     else {
	     
           newdiv = document.createElement('div');
		  resultado = edad1+counterz;
		  h=edad2+counterz;
		  h1=edad3+counterz;
		  h2=edad4+counterz;
		  h3=edad5+counterz;
          newdiv.innerHTML = "<div class='hijo'><table id='hijo'><tr><td><font color='darkred'>-Descendiente:</font><td> </tr>"  
		  + " <tr><td>Nombre(s) </td> <td><input id='"+h+"' required type='text' name='a[]' class='nombrej' onkeypress='return letras(event)' ><font color='red'>*</font></td></tr>"+ 
		  " <tr> <td>Apellido(s) </td> <td><input id='"+h1+"' required type='text' name='b[]'class='apellidoj' onkeypress='return letras(event)'><font color='red'>*</font></td> </tr>"+
		  "<tr id='error[]'> </tr>"+"<tr> <td>Edad </td> <td><input id='"+resultado+"' size='15' class='bod' type='text' readonly name='c[]'onchange='return calcularEdad(this.id)' ><font color='red'>*</font></td> </tr>"
		  +"<tr><td>Nacionalidad</td><td><input type='text'  id='"+h3+"' onkeypress='return letras(event)' class='nacionalidadj'name='d[]'><font color='red'>*</font></td> </tr>"
		  +" <tr><td> Genero</td> <td> <select name='e[]'><option value='Masculino'> Masculino </option> <option value='Femenino'>Femenino</option> </select></td></tr>" +
		  " <tr> <td>Documento de Identificación </td> <td> <select name='f[]'><option value='Pasaporte'> Pasaporte </option> <option value='Cedula-e'>Cedula-e</option> <option value='otro'>Otro</option> </select></td></tr>"
		  +" <tr> <td>Numero documento de Identificación</td> <td><input id='"+h2+"' onkeypress='return identificación(event)'class='nidj' type='text' name='g[]'><font color='red'>*</font></td></tr>"+
		  "<input type='hidden' name='h[]' value='descendiente' ></table>"+"</div>" ;            
		  document.getElementById(divName).appendChild(newdiv);
		 counter++
		 counterz++
		
		
		
		 
 }
}
function removeDiv(divId) { //funcion que elimina a los campos creados de forma dinamica 
   if (counter!=0){
   resultado = edad1+counterz; 
   counter--
   resultado=edad1+counterz;
   $("#"+divId).remove();

   }  
}

function calcularEdad(z){
a=document.getElementById(z).value
alert("Fecha de Nacimiento:  "+a)
id=z;
hoy = new Date();
f=a.split("/");
nacimiento= new Date(f[2],f[1]-1,f[0]);
edad=(hoy.getFullYear()-nacimiento.getFullYear());
if((nacimiento.getMonth())*100+nacimiento.getDate( ) > hoy.getMonth()*100+hoy.getDate()){
edad--;
}
if(edad<=0){edad="menor a 1 año"}
else if(edad>=18){
alert("MAYOR DE EDAD DEBE HACER SU SOLICITUD DE FORMA INDIVIDUAL");

}
document.getElementById(id).value=edad;


}
function calcularEdadPadres(c){
a=document.getElementById(c).value
alert("Fecha de Nacimiento:  "+a)
id=c;
hoy = new Date();
f=a.split("/");
nacimiento= new Date(f[2],f[1]-1,f[0]);
edad=(hoy.getFullYear()-nacimiento.getFullYear());
if((nacimiento.getMonth())*100+nacimiento.getDate( ) > hoy.getMonth()*100+hoy.getDate()){
edad--;
}
if(edad<=0){edad="<1año"}
document.getElementById(id).value=edad;
}
//validación de los campos dinamicos de los hijos
$(document).on('click','.modulo',function fecha(){
$('.nombrej').rules("add", {
required: true,
minlength: 4,
messages: {
required: "Este campo es obligatorio",
minlength: jQuery.format("Minimo {0} Caracteres")
}
});
$('.apellidoj').rules("add", {
required: true,
minlength: 4,
messages: {
required: "Este campo es obligatorio",
minlength: jQuery.format("Minimo {0} Caracteres")
}
});
$('.nidj').rules("add", {
required: true,
minlength: 10,
messages: {
required: "Este campo es obligatorio",
minlength: jQuery.format("Minimo {0} Caracteres")
}
});
$('.nacionalidadj').rules("add", {
required: true,
minlength:5,
messages: {
required: "Este campo es obligatorio",
minlength: jQuery.format("Minimo {0} Caracteres")
}
});

$('.bod').rules("add", {
required: true,

messages: {
required: "Este campo es obligatorio",
}
});

});



como ven la parte que dice validacion hijos solo sirve para el primero que se genera no para los demas porfavor ayuda no se que pueda ser porfavo porfavor porfavor
  #2 (permalink)  
Antiguo 19/02/2013, 15:05
 
Fecha de Ingreso: enero-2013
Mensajes: 38
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: la validación no funciona para todos los campos

porfa alguien em peude ayudar no ponmgo el codigo html porq es muy grande solo falla el script
  #3 (permalink)  
Antiguo 19/02/2013, 18:45
Avatar de erozwashere  
Fecha de Ingreso: noviembre-2012
Ubicación: mex
Mensajes: 176
Antigüedad: 12 años
Puntos: 0
Respuesta: la validación no funciona para todos los campos

Cita:
Iniciado por nexusdata Ver Mensaje
porfa alguien em peude ayudar no ponmgo el codigo html porq es muy grande solo falla el script
Puedes poner la parte del html donde se encuentran los campos?

solo esa parte no todo el html
  #4 (permalink)  
Antiguo 20/02/2013, 07:53
 
Fecha de Ingreso: enero-2013
Mensajes: 38
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: la validación no funciona para todos los campos

Cita:
Iniciado por erozwashere Ver Mensaje
Puedes poner la parte del html donde se encuentran los campos?

solo esa parte no todo el html

ok esta es:

Código html:
Ver original
  1. <table align="lef">
  2.              <tr>
  3.          <td> ¿Solicitara refugio a sus Descendientes:hijo(a)</td>     
  4.         <td><input type="checkbox" name="expandir" value="si">Si</td>
  5.         </tr>
  6.         </table>
  7.             <input type="button" id="añade" name="añade" value="Agregar Descendientes:hijo(a)" class="modulo" onClick="addInput('dynamicInput');">
  8.      <input type="button" value="Eliminar Descendientes:hijo(a)" class="modulo2" onclick="removeDiv('hijo');">
  9.      <br>
  10.             <div id="dynamicInput" >        
  11.      </div>


este es el html de esa parte nada mas esta dentro de un form

Etiquetas: dinamicos, validacion
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 04:46.