Foros del Web » Programando para Internet » Javascript »

al crear div nuevo sale NaN en al parte superior de este

Estas en el tema de al crear div nuevo sale NaN en al parte superior de este en el foro de Javascript en Foros del Web. hola amigos ya porfin ese script que la pasaba posteando aqui ya lo termine gracias a todos por su ayuda,ahora s pasa algo muy extraño ...
  #1 (permalink)  
Antiguo 08/02/2013, 14:47
 
Fecha de Ingreso: enero-2013
Mensajes: 38
Antigüedad: 11 años, 10 meses
Puntos: 0
al crear div nuevo sale NaN en al parte superior de este

hola amigos ya porfin ese script que la pasaba posteando aqui ya lo termine gracias a todos por su ayuda,ahora spasa algo muy extraño lo que describe el titulo es lo unico que falta para terminarlo perfecto cualquier ayuda para eliminar esto porfa, esto paso de repente antes no lo hacia e aqui el script


var counter= 0;
var edad1="e";
var counterg=0;
var counterz=0;
var limit =10;
var edad;
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+counterz;
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>Edad </td> <td><input id='"+resultado+"' class='bod' type='text' name='c[]'onchange='calcular1(this.id)' ></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++
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 calcular1(c){
a=document.getElementById(c).value
alert("fecha de Nascimiento:"+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>99){edad=edad-100}
document.getElementById(id).value=edad;


}
  #2 (permalink)  
Antiguo 09/02/2013, 07:58
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 12 años, 3 meses
Puntos: 83
Respuesta: al crear div nuevo sale NaN en al parte superior de este

Tienes un +\n+ en los datos de texo que se interpreta como un valor no numerico (entre las lineas 17-18) y al estar fuera de fila/columna se muestra al principio de la tabla:

Código:
"<tr id='error[]'> </tr>"+"<tr> <td>Edad </td> <td><input id='"+resultado+"' class='bod' type='text' name='c[]'onchange='calcular1(this.id)' ></td> </tr>"+
+"<tr><td>Nacionalidad</td><td><input type='text' name='d[]'></td> </tr>"
Una observacion: tal vez te ayudaria con errores de este tipo el indentar el codigo y usar un metodo de trabajo (p.ej. poner todos los '+' al principo, separar por niveles, etc)

Código:
newdiv.innerHTML = "<div id='hijo'>
    + "<table>"
    + "    <tr>"
    + "        <td>Celda</td>"
    + "    </tr>"
    + "<table>"
    + "</div>";
Saludos
vosk

Etiquetas: campos, funcion, html, input, parte, select, superior
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 20:22.