Foros del Web » Programando para Internet » Javascript »

calcular edad dinamicamente

Estas en el tema de calcular edad dinamicamente en el foro de Javascript en Foros del Web. hola amigos de un problema resuelto salte a otro , jejej bueno asi es la vda de programar , ahora quiero calcular con js la ...
  #1 (permalink)  
Antiguo 06/02/2013, 10:30
 
Fecha de Ingreso: enero-2013
Mensajes: 38
Antigüedad: 11 años, 10 meses
Puntos: 0
calcular edad dinamicamente

hola amigos de un problema resuelto salte a otro , jejej bueno asi es la vda de programar , ahora quiero calcular con js la edad a partir de unos campso que creo de forma dinamica , e aqui el script:

var counter = 0;
var limit =5;

function addInput(divName){ <!--Script que crea los campos para los hijos de forma dinamica -->
if (counter == limit) {
alert("¡NUMERO MAXIMO DE DESCENDIENTES ALCANSADO!");
;
}
else {
var newdiv = document.createElement('div');
newdiv.innerHTML = "<div id='hijo'><table id='hijo'><tr><td>-Descendiente:<td> </tr>"
+ " <tr><td>Nombre(s) </td> <td><input type='text' name='a[]' ></td></tr>"+
" <tr> <td>Apellido(s) </td> <td><input type='text' name='b[]' ></td> </tr>"+
"<tr id='error[]'> </tr>"+"<tr> <td>fecha de nacimiento </td> <td><input class='bod' type='text' name='c[]'onchange='calcular1(this.value)'></td> </tr>"+
"<tr><td>Edad</td><td><input id='edad1[]' type='text' readonly name='c'></td> </tr>"
+"<tr><td>Nacionalidad</td><td><input type='text' name='d[]'></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 type='text' name='g[]'></td> </tr>"+
"<input type='hidden' name='h[]' value='descendiente' ></table><br>"+"</div>" ;
document.getElementById(divName).appendChild(newdi v);
counter++;

}
}
function removeDiv(divId) { <!--funcion que elimina a los campos creados de forma dinamica -->
$("#"+divId).remove();
counter=counter-1;

}
function calcular1(a){
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>99){edad=edad-100}
document.getElementsByTagName('c[]').value=edad;
}


la idea es que a medida de que la persona seleccione la fecha de nacimiento de un calendario que aparece se le calcule al edad y se coloque en un campo de solo lectura , me funciona si es de forma dinamica asi como lo ven pero dinamica no alli esta el detalle , gracias anticipadas
  #2 (permalink)  
Antiguo 06/02/2013, 10:54
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: calcular edad dinamicamente

Asi, viéndolo muy por arriba

me podés decir que es esto
id='edad1[]'
Ese id NO es válido

document.getElementsByTagName('c[]').value=edad;

conocés la etiqueta <c[]></c[]> ????

Yo revisaría con cuidado todo lo que estás haciendo, bueno, asi es la vida del programador
SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 06/02/2013, 11:54
 
Fecha de Ingreso: enero-2013
Mensajes: 38
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: calcular edad dinamicamente

hola gracias por la respuesta vi lo que pusistes y lo corregi:

var counter = 0;
var limit =5;
function addInput(divName){ <!--Script que crea los campos para los hijos de forma dinamica -->
if (counter == limit) {
alert("¡NUMERO MAXIMO DE DESCENDIENTES ALCANSADO!");
;
}
else {
var newdiv = document.createElement('div');
newdiv.innerHTML = "<div id='hijo'><table id='hijo'><tr><td>-Descendiente:<td> </tr>"
+ " <tr><td>Nombre(s) </td> <td><input type='text' name='a[]' ></td></tr>"+
" <tr> <td>Apellido(s) </td> <td><input type='text' name='b[]' ></td> </tr>"+
"<tr id='error[]'> </tr>"+"<tr> <td>fecha de nacimiento </td> <td><input class='bod' type='text' name='c[]'onchange='calcular1(this.value)'></td> </tr>"+
"<tr><td>Edad</td><td><input id='edad1' type='text' class='hijoe' readonly name='z[]'></td> </tr>"
+"<tr><td>Nacionalidad</td><td><input type='text' name='d[]'></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 type='text' name='g[]'></td> </tr>"+
"<input type='hidden' name='h[]' value='descendiente' ></table><br>"+"</div>" ;
document.getElementById(divName).appendChild(newdi v);
counter++;

}
}
function removeDiv(divId) { //funcion que elimina a los campos creados de forma dinamica
$("#"+divId).remove();
counter=counter-1;
}

function calcular1(a){
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>99){edad=edad-100}
document.getElementById('edad1').value=edad;

}

asi me sirve pero coloca el resultado en un mismo campo cambiando trate de hacer lo que me digistes y no pude porfavor si em puedes ayudar para terminar

Última edición por nexusdata; 06/02/2013 a las 14:36
  #4 (permalink)  
Antiguo 06/02/2013, 15:18
 
Fecha de Ingreso: enero-2013
Mensajes: 38
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: calcular edad dinamicamente

tarbajando un poco mas logre que me pusiera los valores en el campo asi

function calcular1(a){
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>99){edad=edad-100}
var edad= document.getElementsByName("z[]");
for(i=0;i < edad.length;i++)
{
edad[i].value=edad;
}
}

pero en el campo de edad en lugar de la edad calculada me coloca [object NodeList] que esto :(
  #5 (permalink)  
Antiguo 07/02/2013, 09:23
 
Fecha de Ingreso: enero-2013
Mensajes: 38
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: calcular edad dinamicamente

Alguien ayudeme porfavorrrr se los ruego

Etiquetas: campos, dinamicamente, edad, funcion, html, input, js, select
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 07:11.