Ver Mensaje Individual
  #4 (permalink)  
Antiguo 31/05/2004, 06:40
soniagrande
 
Fecha de Ingreso: mayo-2004
Mensajes: 75
Antigüedad: 20 años, 9 meses
Puntos: 2
Te he modificado el metodo de antes de forma que quita el boton de la fila anterior, eso si, la fila se queda con un cuadro vacio que no se si es lo que querias. Sino lo que puedes hacer es poner el boton fuera de la tabla (quitas esa cuarta columna y todo el javascript que hace referencia a ella), de manera que el boton aparece justo debajo de la tabla y se va desplazando hacia abajo segun va creciendo la tabla.

En cuanto a lo de pasarle al formulario el numero de filas que tiene la tabla al final, no entiendo muy bien lo que quieres decir con "Habia pensado utilizar un hidden, pasandole el contador, pero no puede acceder a esa variable." ¿no puedes acceder a la variable?. Lo del hidden me parece la opcion menos liante. He metido la tabla dentro de un formulario (porque supongo que los datos de la tabla tambien tienen que ir en el formulario) y he puesto un hidden "numFilas" que actualizo cada vez que añado una nueva fila a la tabla. Por si quieres ver como se va modificando el contenido de esta variable el enlace mostrar numero filas te lo enseña en un alert.

<html>
<head>
<script language="JavaScript">
var l=2;

function complementaria2(){
var objTabla = document.getElementById("t2");
var objTbody=objTabla.firstChild;
var objNuevaFila=objTbody.childNodes[0].cloneNode(true);
//cambiamos el contenido de las celdas
objNuevaFila.childNodes[0].innerHTML = "<input type =\"text\" name =\"CompCurso"+l+"\" >";
objNuevaFila.childNodes[1].innerHTML = "<input type =\"text\" name =\"CompCentro"+l+"\" >";
objNuevaFila.childNodes[2].innerHTML = "<input type =\"text\" name =\"CompHoras"+l+"\" >";
objNuevaFila.childNodes[3].innerHTML = "<input type =\"text\" name =\"CompObservac"+l+"\" >";
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[l-2].childNodes[4].innerHTML = "&nbsp;";
//actualizamos la variable del formulario que indica el numero de filas
document.getElementById("numFilas").value = l;
//incrementamos para la siguiente fila
l++;
}
</script>
</head>
<body>
<DIV id="comp">
<FORM name="formulario">
<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"></TD>
<td><input type="button" name="compb" value="Añadir Curso" onClick="complementaria2();"></td>
</TR>
</TABLE>
<TABLE>
<TR>
<TD>
<a href="javaScript: alert(document.getElementById('numFilas').value)"> mostrar numero filas</a>
</TD>
</TR>
</TABLE>
</FORM>
</DIV>
</body>
</html>

Espero haberme explicado bien y que te sirva.