Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/10/2010, 10:35
Avatar de Algadar
Algadar
 
Fecha de Ingreso: abril-2009
Mensajes: 115
Antigüedad: 15 años, 7 meses
Puntos: 1
Funciona en IE pero no en fire fox

Buenos días tengo el sigueinte codigo:

Código:
<!DOCtype html PUBLIC "-//W3C//Dtd XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/Dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="JavaScript">

// ANTES ESTABA ASÍ 
//var li=2;

var li=1;

function complementaria2(){
var objTabla = document.getElementById("t2");
var objTbody=objTabla.firstChild;
/*var lent=objTbody.childNodes.length;
var table=objTabla.rows[0].cloneNode(true);
objTabla.appendChild(table);*/
//alert(li++);
li++
var objNuevaFila=objTbody.childNodes[0].cloneNode(true);
//cambiamos el contenido de las celdas
objNuevaFila.childNodes[0].innerHTML="<input type=\"text\" id=\"CompCurso"+li+"\" name=\"CompCurso"+li+"\" onClick= \"muestrame(id)\" >";
objNuevaFila.childNodes[1].innerHTML="<input type=\"text\" id=\"CompCentro"+li+"\" name=\"CompCentro"+li+"\" onClick= \"muestrame(id)\" >";
objNuevaFila.childNodes[2].innerHTML="<input type=\"text\" id=\"CompHoras"+li+"\" name=\"CompHoras"+li+"\" onClick= \"muestrame(id)\" >";
objNuevaFila.childNodes[3].innerHTML="<input type=\"text\" id=\"CompObservac"+li+"\" name=\"CompObservac"+li+"\" onClick= \"muestrame(id)\" >";
objNuevaFila.childNodes[4].innerHTML="<input type=\"button\" name=\"compb\" value=\"Añadir Curso\" onClick=\"complementaria2();\">";
objTbody.appendChild(objNuevaFila);
//l es el contador de las filas de la tabla, hago -2 porque yo lo tengo inicializado a 2
//y la primera fila es la 0
objTbody.childNodes[li-2].childNodes[4].innerHTML = "&nbsp;";
//actualizamos la variable del formulario que indica el numero de filas
document.getElementById("numFilas").value = li;
//incrementamos para la siguiente fila
//li++;
document.getElementById("repet").value=li;
}

function add(tabla)
{
  var tblBody = document.getElementById('t2').tBodies[0];
  var newNode = tblBody.rows[0].cloneNode(true);
  tblBody.appendChild(newNode);
}
function muestrame(id){
	datoxt= document.getElementById(id).value;
	alert(id);
	}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>
<DIV id="comp">
<FORM name="formulario">
<input type="text" name="repet" id="repet" />
<INPUT type="hidden" name="numFilas" value="1"/>
<TABLE id = "t2" BORDER="2" WIDTH="90%" CELLPADDING="5" CELLSPACING="5" bordercolor="#FFcc33">
<TR>
<TD><INPUT TYPE="text" VALUE="" NAME="CompCurso1"></TD>
<TD><INPUT TYPE="text" VALUE="" NAME="CompCentro1" ></TD>
<TD><INPUT TYPE="text" VALUE="" NAME="CompHoras1" ></TD>
<TD><INPUT TYPE="text" VALUE="" NAME="CompObservac1" id="CompObservac1" onClick="muestrame(id)" ></TD>
<td><input type="button" name="compb" value="Añadir Fila" onClick="complementaria2();"></td>
<td><input type="button" name="compb2" value="Añadir new" onClick="add();"></td>
</TR>
</TABLE>
<TABLE>
<TR>
<TD>
<a href="javaScript:alert(document.getElementById('numFilas').value)"> mostrar numero filas</a>
</TD>
</TR>
</TABLE>
</FORM>
</DIV>

<p>&nbsp;</p>
</body>
</html>
En resumen lo que hace es agregar una linea con todas sus columnas en vivo y en directo con todos los objetos que estas contengan, cambiando el id de cada objeto nuevo que se crea incrementado un numero al final del nombre de cada objeto exceptuando en boton Añadir Fila (El codigo fue tomado gracias a la colaboración de un mienbro de este foro); todo esto se genera con la función "complementaria2()" existe otra función que hace lo mismo pero de manera más basica sin cambiar el id de cada objeto ni nada de lo que ya comente antes, dicha funcion es "add()". el problema es que la primera función funciona pperfectamente pero en IE y no el Firefox al segunda función si funciona en ambas pero no me hace el trabajo como yo deseo.
Tengo una hipotesis que es esta linea la que me da problemas en firefox
Código Javascript:
Ver original
  1. var table=objTabla.rows[0].cloneNode(true);
en la función "complementaria2()" no genera ningun tipo de error simplemente no ejecuta el codigo.
agradezco de antemano su colaboración.
__________________
Deseo poco y lo poco que deseo, lo deseo poco.!
De Colores.