chris: dynamische tabelle sendet nicht mit Zeilen>6

Hallo.

Ich versuche, mit DOM/JavaScript eine dynamische Tabelle zu erstellen,
und zwar in der Form, dass auf Knopfdruck immer eine neue Zeile an die Tabelle angehangen wird. Das funktioniert auch wunderbar.
Ein großes Problem ist jedoch, dass ab einer Zeilenanzahl >6 ein Klick auf den Submit-Button keine Wirkung mehr hat, d.h. der komplette Sendevorgang wird nicht initiiert.

Browser IE 6. Andere Browser kommen wg. Kundenvorgaben nicht in Betracht.

Ich bin für jede Hilfe dankbar. Wie kann ich eine beliebig lange Tabelle erstellen und natürlich auch an den Server senden?

Hier die JS-Funktion zum Erstellen einer neuen Tabellenzeile:
Es werden die Elemente der ersten Zeile der Tabelle kopiert mittels clone(true) und zu einer neuen Zeile zusammengefügt.

function addRow(){
  var tbody = document.getElementById("table1_2_1").getElementsByTagName("tbody")[0];

var td1=tbody.childNodes[3].childNodes[1].cloneNode(true);
  td1.firstChild.value="";

var td2=tbody.childNodes[3].childNodes[2].cloneNode(true);
  td2.firstChild.value="";

var td3=tbody.childNodes[3].childNodes[3].cloneNode(true);
  td3.firstChild.value="";

var td4=tbody.childNodes[3].childNodes[4].cloneNode(true);
  td4.firstChild.value="";

var td5=tbody.childNodes[3].childNodes[5].cloneNode(true);
  td5.firstChild.value="";

var td6=tbody.childNodes[3].childNodes[6].cloneNode(true);
  td6.firstChild.value="";

var tdbutton=tbody.childNodes[3].childNodes[7].cloneNode(true);

var row = document.createElement("TR");
  var cell1 = document.createElement("TD");
  var cell9 = document.createElement("TD");
  var inp1 =  document.createElement("input");
  var inp8 =  document.createElement("input");

cell1.setAttribute("align", "center");
  cell9.setAttribute("align", "right");

inp1.setAttribute("type","hidden");
  inp1.setAttribute("value", kennung);
  inp1.setAttribute("class","lwform");
  inp1.setAttribute("size","9");
  inp1.setAttribute("align","center");
  inp1.setAttribute("name","inp1");

inp8.setAttribute("type","hidden");
  inp8.setAttribute("class","lwform");
  inp8.setAttribute("size","9");
  inp8.setAttribute("align","right");
  inp8.setAttribute("value","-1");
  inp8.setAttribute("name","inp8");

cell1.appendChild(inp1);

cell9.appendChild(inp8);

row.appendChild(cell1);
  row.appendChild(td1);
  row.appendChild(td2);
  row.appendChild(td3);
  row.appendChild(td4);
  row.appendChild(td5);
  row.appendChild(td6);
  row.appendChild(tdbutton);
  row.appendChild(cell9);

tbody.appendChild(row);
}

  1. Hallo.

    var inp1 =  document.createElement("input");

    inp1.setAttribute("type","hidden");
      inp1.setAttribute("name","inp1");

    beachte diese MS- createElement Methode.

    Gruß planB

  2. Hier die JS-Funktion zum Erstellen einer neuen Tabellenzeile:
    Es werden die Elemente der ersten Zeile der Tabelle kopiert mittels clone(true) und zu einer neuen Zeile zusammengefügt.

    Wieso arbeitest du mit chdildNodes?
    Warum nicht mit rows(), cols(), addRow() usw.
    http://de.selfhtml.org/javascript/objekte/htmlelemente.htm#table?

    cell1.setAttribute("align", "center");
      cell9.setAttribute("align", "right");

    Mal abgesehen davon, dass dies veraltete Attribute sind, reagiert der IE auf setAttribute() manchmal allergisch, diese Funktion ist in solche einem Fall auch gar nicht nötig, da du die Attribute unmittelbar setzen kannst.

    Was dein Problem angeht, hast du dir mal den erzeugten HTML Code angeschaut bzw. den Code des Fomrulares danach? Evtl. hast du irgendeinen Fehler beim hinzufügen der Elemente gemacht.

    Struppi.

    --
    Javascript ist toll (Perl auch!)