Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] colocar valores en campos dinamicos

Estas en el tema de colocar valores en campos dinamicos en el foro de Javascript en Foros del Web. hola amigos del foro hice un post anterior preguntando como podia calcular la edad dinamicamente pero no lo pude lograr asi que ahora quiero saber ...
  #1 (permalink)  
Antiguo 07/02/2013, 11:17
 
Fecha de Ingreso: enero-2013
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
colocar valores en campos dinamicos

hola amigos del foro hice un post anterior preguntando como podia calcular la edad dinamicamente pero no lo pude lograr asi que ahora quiero saber si una ves creaado dinamicamente unos campos como puedo colocar unos valores calculados en su campo correspondiente el detalle es que ese campo tiene id =edad1 si uso document.getElementById('edad1') calcual las valores pero los av sobreescribiendo en el mismo campo e intentado todo para tratar de solucionar esto pero nada si alguien sabe algo que me pudiera orientar porfavor responda estoy mu desesperado les dejo mi script como lo tengo para que vean:


var counter = 0;
var edad1= new Array()

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();
if (counter>0){
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;



a medida que selecionas la fecha se te calcula la edad la idea es quee ese resultado se te coloque en su campo correspondiente y no se te sobreescriba eso es lo que nose disculpen esto pero ya no se que hacer
  #2 (permalink)  
Antiguo 07/02/2013, 11:32
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 3 meses
Puntos: 53
Respuesta: colocar valores en campos dinamicos

en tu funcion estas enviando el valor directamente a un elemento "edad1" asi que siempre se sobre eescribira, si deseas que sea correspondiente debes colocar otro id al otro input/text "edad2"

para agregarla debes enviar el nombre del id al que deseas colocarlo con un parametro extra

Cita:
function calcular1(a,iddelaedad){
y despues en el document.get.....

document.getElementById(iddelaedad).value=edad;
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #3 (permalink)  
Antiguo 07/02/2013, 11:39
 
Fecha de Ingreso: enero-2013
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: colocar valores en campos dinamicos

gracias por responer tan rapido pero no se como hacer para que el campo edad que ves tanga id diferentes a medida que se cree si hiciera eso podra aplicar lo que me dices alguna idea ????
  #4 (permalink)  
Antiguo 07/02/2013, 11:46
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 3 meses
Puntos: 53
Respuesta: colocar valores en campos dinamicos

veo que tienes un contador "counter" para evitar que hagan mas de 5, puedes usar este para crear id dinamicos

Cita:
<input id="edad'+counter+'" type="text">
le colocas este id a las cajas de texto donde quieras el id dinamico, solo verifica la sintaxis de concatenacion
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #5 (permalink)  
Antiguo 07/02/2013, 11:51
 
Fecha de Ingreso: enero-2013
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: colocar valores en campos dinamicos

ok men gracias de nuevo no sabia que eso se podia dejame probar y te digo de nuevo gracias
  #6 (permalink)  
Antiguo 07/02/2013, 12:05
 
Fecha de Ingreso: enero-2013
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: colocar valores en campos dinamicos

men lo probe y no em funciono si puedes ver en que me equivoque porfa

var counter = 0;
var edad1= new Array()

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='edad+counter+'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();
if (counter>0){
counter=counter-1;
}


}
function calcular1(a,id){
for(i=0;i<counter;i++){
id="edad"+i;
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(id).value=edad;



}
}

Última edición por nexusdata; 07/02/2013 a las 12:11
  #7 (permalink)  
Antiguo 07/02/2013, 13:02
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 3 meses
Puntos: 53
Respuesta: colocar valores en campos dinamicos

la concatenacion esta mal

investiga como concatenar de forma correcta

Código HTML:
Ver original
  1. <input id='edad+counter+' type='text' class='hijoe' readonly name='z[]'>
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #8 (permalink)  
Antiguo 07/02/2013, 13:18
 
Fecha de Ingreso: enero-2013
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: colocar valores en campos dinamicos

corrigiendo me quedo asi pero ahora si habres mas de un hijo en el primer campo no coloca la edad pero los otros si sime puedes ayudar en eso porfa:




var counter = 0;
var edad1="e";

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');
resultado = edad1+counter;
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='"+resultado+"'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();
if (counter>0){
counter=counter-1;
}


}
function calcular1(a,id){

id=resultado
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(id).value=edad;



}

Última edición por nexusdata; 07/02/2013 a las 13:24

Etiquetas: campos, dinamicos, funcion, html, input, 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 13:31.