Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/06/2009, 07:58
Avatar de Adler
Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: ¿ Cómo hacer editable una tabla de html ?

Hola, bienvenido al foro

Esto sería un inicio

Código javascript:
Ver original
  1. <html><head>
  2. <title>Agregar fila de campos DINAMICOS</title>
  3.  
  4. <script type="text/javascript">
  5. function adicionarFila(){
  6. var cont = document.getElementById("cont");
  7. var filas = document.getElementById("filas");
  8. cont.setAttribute("value", parseInt(cont.value,0)+1);
  9. var tabla = document.getElementById("contenido").tBodies[0];
  10. var fila = document.createElement("TR");
  11. fila.setAttribute("align","center");
  12.  
  13. var celda1 = document.createElement("TD");
  14. var codigo = document.createElement("INPUT");
  15. codigo.setAttribute("type","text");
  16. codigo.setAttribute("size","8");
  17. codigo.setAttribute("maxlength","20");
  18. codigo.setAttribute("name","codigo" + cont.value);
  19. celda1.appendChild(codigo);
  20.  
  21. var celda2 = document.createElement("TD");
  22. var sel = document.createElement("SELECT");
  23. sel.setAttribute("size","1");
  24. sel.setAttribute("name","sel" + cont.value);
  25. opcioncur = document.createElement("OPTION");
  26. opcioncur.innerHTML = '';
  27. opcioncur.value = '';
  28. sel.appendChild(opcioncur);
  29.  
  30. opcion1 = document.createElement("OPTION");
  31. opcion1.innerHTML = "este Select depende de lo que";
  32. opcion1.value = "este Select depende de lo que";
  33. sel.appendChild(opcion1);
  34.  
  35. opcion2 = document.createElement("OPTION");
  36. opcion2.innerHTML = "se ponga en el anterior campo";
  37. opcion2.value = "se ponga en el anterior campo";
  38. sel.appendChild(opcion2);
  39.  
  40. celda2.appendChild(sel);
  41.  
  42. var celda3 = document.createElement("TD");
  43. var valorA = document.createElement("INPUT");
  44. valorA.setAttribute("type","text");
  45. valorA.setAttribute("size","1");
  46. valorA.setAttribute("maxlength","3");
  47. valorA.setAttribute("name","valorA" + cont.value);
  48. celda3.appendChild(valorA);
  49.  
  50. var celda4 = document.createElement("TD");
  51. var valorB = document.createElement("INPUT");
  52. valorB.setAttribute("type","text");
  53. valorB.setAttribute("size","1");
  54. valorB.setAttribute("maxlength","3");
  55. valorB.setAttribute("name","valorB" + cont.value);
  56. celda4.appendChild(valorB);
  57.  
  58. var celda5 = document.createElement("TD");
  59. var valorC = document.createElement("INPUT");
  60. valorC.setAttribute("type","text");
  61. valorC.setAttribute("size","1");
  62. valorC.setAttribute("maxlength","3");
  63. valorC.setAttribute("name","valorC" + cont.value);
  64. //onfocus="fc(this)"
  65. celda5.appendChild(valorC);
  66.  
  67. var celda6 = document.createElement('TD');
  68. var boton = document.createElement('INPUT');
  69. boton.setAttribute('type','button');
  70. boton.setAttribute('value','borrar');
  71. boton.onclick=function(){borrarFila(this);}
  72. celda6.appendChild(boton);
  73.  
  74. fila.appendChild(celda1);
  75. fila.appendChild(celda2);
  76. fila.appendChild(celda3);
  77. fila.appendChild(celda4);
  78. fila.appendChild(celda5);
  79. fila.appendChild(celda6);
  80.  
  81. tabla.appendChild(fila);
  82. }
  83. function borrarFila(button){
  84. var fila = button.parentNode.parentNode;
  85. var tabla = document.getElementById('contenido').getElementsByTagName('tbody')[0];
  86. tabla.removeChild(fila);
  87. }
  88.  
  89.  
  90. function fc(campo) {
  91.     var n=parseInt(campo.name.substr(6),10);
  92.     var    a=campo.form.elements["valorA"+n];
  93.     var    b=campo.form.elements["valorB"+n];
  94.     var na=parseFloat(a);
  95.     var nb=parseFloat(b);
  96.     if (isNaN(na)) { na=0; }
  97.     if (isNaN(nb)) { nb=0; }
  98.     campo.value=na+nb;
  99.     campo.blur();
  100. }
  101. </script>
  102. </head>
  103. <body onLoad="adicionarFila()">
  104. <Form name="detalle" action="ej.asp" method="get">
  105. <input name="cont" type="hidden" id="cont" value="0" >
  106. <input name="filas" type="hidden" id="filas" value="" >
  107. <table align=center width=20% cellpadding=0 cellspacing=0 id="contenido" border="1">
  108. <tr align="center">
  109. <td>codigo</td>
  110. <td>Select dependiente de Codigo</td>
  111. <td>A +</td>
  112. <td>B =</td>
  113. <td>C</td>
  114. <td>&nbsp;</td>
  115. </tr>
  116. </table>
  117. <table align=center width=20% cellpadding=0 cellspacing=0 border="1">
  118. <tr>
  119. <td>&nbsp;</td>
  120. </tr>
  121. <tr align="center">
  122. <td align="CENTER"><input name="enviar" type="submit" id="enviar" value="enviar" onClick="filas.value=cont.value, cont.value=0">
  123. <input name="nueva_fila" type="button" id="nueva_fila" value="nueva fila" onClick="adicionarFila()"></td>
  124. </tr>
  125. </table>
  126. </form>
  127. </body>
  128. </html>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />