schon einige Probleme hier zu verstehen.
<tr id="500">
<form id="500" onsubmit="DoThis()">
Sie können keine 'ID' haben, die mit einer Nummer beginnt. Sie können nicht zwei identische ID-Werte im selben Dokument haben. Sie können nicht < form> direkt in einem < tr> haben, was das Problem hier verursacht. Für mich funktioniert selbst die erste Form nicht.
var TrElement = document.getElementById("500")
Welcher?
var parent = TrElement.parent;
Sollte parentNode sein.
var NewTr = TrElement.cloneNode(true);
parent.appendChild(NewTr);
Sie haben nun weitere zwei Elemente mit id = "500"! Sie sollten die IDs der geklonten Elemente ändern, bevor Sie sie an das Dokument anhängen.
Es gibt ein paar Ansätze, die Sie hier nehmen können. Wenn sich alle Formularfelder in einer einzelnen Zelle befinden, können Sie das Formular einfach in die Zelle einfügen. Wenn Sie jedoch Felder für mehrere Zellen benötigen, muss das Formular außerhalb der Tabelle liegen.
In diesem Fall könnten Sie entweder ein einzelnes Formular außerhalb der gesamten Tabelle oder ein Formular vor Zeile haben, die jeweils eine separate < Tabelle> enthält. Sie können die Spalten aller Tabellen mithilfe von Spalten mit der angegebenen Breite und der CSS-Regel "table-layout: fixed" in eine Reihe bringen.
(Benötigen Sie überhaupt ein Formular? In Ihrem Beispiel fehlt möglicherweise Code, aber Sie verwenden das Formular nicht einmal, um es an eine beliebige Stelle zu senden. Wenn Ihre Seite reines JavaScript sein soll, . Sie können das Formular vollständig weglassen und nur Onclick Ereignisse auf Tasten legen)
angenommen, Sie mehrere Formulare müssen tun, hier einige Beispiel-Code:
<div>
<form method="post" action="setThing.script" class="setform" id="setform-500">
<table><tr>
<td>Info</td>
<td><input type="text" name="setting" value="" /></td>
<td><input type="submit" value="Set" /></td>
</tr></table>
</form>
</div>
<button id="addrow">Another one, please!</button>
<script type="text/javascript">
function doThing() {
alert('validating form or something');
return false;
}
var rownum= 500;
document.getElementById('setform-'+rownum).onsubmit= doThing;
document.getElementById('addrow').onclick= function() {
var f500= document.getElementById('setform-'+rownum);
var fnew= f500.cloneNode(true);
rownum++;
fnew.id= 'setform-'+rownum;
fnew.onsubmit= doThing;
f500.parentNode.appendChild(fnew);
}
</script>
Was ich tun werde soll: ich habe eine viel Zeilen in meiner Tabelle. Diese Zeilen enthalten Informationen zu einem Element. sagen wir so: < td>< td>
Element-IDs können auch nicht mit einer Nummer beginnen –
@John - netter Haken Aktualisieren – tvanfosson