Maik: Javascript, Input-Feld Dynamisch Anlegen und Auslesen

Beitrag lesen

Hallo,

ich möchte in ein vorhandenes Formular neue Input-Felder hinzufügen. Das klappt auch gut. Nun möchte ich die Felder vor dem Abschicken prüfen. Hier kommt nun immer eine Fehlermeldung, dass die erzeugten Input-Felder nicht existieren - in der Ansicht existieren sie aber. Was ist falsch?

Ich habe den Code mal hier reingezogen: (bitte um entschuldigung für die schlechte formatierung)

------------------------

<script type="text/javascript">

function neu()
{
  NewRow = document.getElementById('tab').lastChild.cloneNode(true);
  document.getElementById('tab').appendChild (NewRow);

var i = document.getElementById('tab').childNodes.length - 1;

for(j=0;j<document.getElementById('tab').lastChild.getElementsByTagName('input').length;j++)
  {
   var newname ='inhalt[' +i+ '][' +j+ ']';

document.getElementById('tab').lastChild.getElementsByTagName('input')[j].setAttribute('name', newname) ;
  }

}

function check()
{
// ****** HIER ****** //
// Ich möchte erst mal, dass ich den Inhalt eines erzeugten Feldes angezeigt bekomme, das geht schon mal nicht
// Mit firstChild und lastChild geht es manchmal, wie erreiche ich die dazwischen?
alert(document.getElementById('tab').lastChild.getElementsByTagName('inhalt[3][1]'));
}

</script>

<form action="test.php" method="post" name="form" id="form" onsubmit="return check();">

<table width="447" border="0" cellspacing="0" cellpadding="0" id='tab'>
          <tr>
            <td width="61"><input name="inhalt[0][1]" type="text" size="7"></td>
            <td width="126"><input name="inhalt[0][2]" type="text"  size="20"></td>
            <td width="62"><input name="inhalt[0][3]" type="text" size="7"></td>
            <td width="64"><input name="inhalt[0][4]" type="text"size="7"></td>
            <td width="75"><input name="inhalt[0][5]" type="text"  size="7"></td>
            <td width="59"><div align="left">(l&ouml;schen)</div></td>
          </tr>
        </table>
</form>
<input type="button" value=" Neue Position " onClick="neu()">

</body></html>