Cita: te salio un poco duro el alumno jejje
Pues sí...
Para poder anular varias cosas a la vez hay que ponerlas dentro de un DIV (capa), pero eso no funciona cubriendo varias celdas, así que lo que he hecho es ponerlo todo en una sola celda, a la cual se aplica el resultado de la función (la etiqueta TD hace el papel de la DIV); dentro de esa celda su pueden poner cosas sueltas, o poner una tabla para generar las columnas o filas extra que quieras (a estas tablas interiores les he puesto borde para que las veas, pero con border=0 no se notaría nada).
Fíjate que las filas 1, 2 y 3 están rellenas de modos diferentes.
Por otro lado, no he conseguido desactivar las capas, pero sí ocultarlas. Creo que queda mejor, se ve claramente que no se van a usar y además creo que no se tendrán en cuenta al enviar el formulario.
Código HTML:
<html>
<head>
<script language="JavaScript" type="text/javascript">
function activa(i) {
for (j=1;j<4;j++) {
var laCapa = document.getElementById('grupo'+j)
if (j==i) { laCapa.style.visibility="visible" }
else { laCapa.style.visibility="hidden" }
}
}
</script>
</head>
<body>
<form>
<table border=3 cellpadding=6>
<tr>
<td><input type="radio" name="grupo" value="1" onClick="activa(1)">Opción 1</td>
<td id="grupo1">Escribe algo:<input type="text" name="texto1A">
Escribe algo:<input type="text" name="texto1B">
</td>
</tr>
<tr><td><input type="radio" name="grupo" value="2" onClick="activa(2)">Opción 2</td>
<td id="grupo2">
<table border=1><tr>
<td>Escribe algo:<input type="text" name="texto2A"></td>
<td>Escribe algo:<input type="text" name="texto2B"></td>
</tr></table>
</td>
</tr>
<tr><td><input type="radio" name="grupo" value="3" onClick="activa(3)">Opción 3</td>
<td id="grupo3">
<table border=1><tr>
<td>Escribe algo:<input type="text" name="texto3A"></td>
<td>Escribe algo:<input type="text" name="texto3B"></td>
</tr>
<tr>
<td><select name="lista3">
<option>Elige...</option>
<option>Rojo</option>
<option>Azul</option>
<option>Verde</option>
</select></td>
<td><input type="radio" name="radio3">Grande
<input type="radio" name="radio3">Pequeño</td>
<td><select name="lista3a">
<option>Elige otra...</option>
<option>Rojo</option>
<option>Azul</option>
<option>Verde</option>
</select></td>
</tr></table>
</td>
</tr>
</table>
</form>
</body>
</html>
Llegados a este punto, usar tablas es una chapucilla, habría que hacerlo todo con capas posicionadas, pero en eso no tengo práctica.