Funktion der indsætter nye rækker i tabel
Jeg har følgende kode:<table id="ingtabel" width="700" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="130">Mængde</td>
<td width="20"> </td>
<td width="100">Mængdemål</td>
<td width="20"> </td>
<td>Ingredienser</td>
</tr>
<tr>
<td><input name="txt0" type="text" id="txt0" size="20" onChange="addCode()"></td>
<td> </td>
<td><input name="txt1" type="text" id="txt1" size="10" onChange="addCode()"></td>
<td> </td>
<td><input name="txt2" type="text" id="txt2" size="50" maxlength="50" onChange="addCode()"></td>
</tr>
</table>
<p align="center">
<input type="submit" name="Submit" value="Submit">
</p>
<p> </p>
<p id="myp"> </p>
</form>
<p> </p>
<script language="JavaScript" type="text/javascript">
function addCode()
{
a = document.forms[0].length;
var referrer = event.srcElement.id;
referrer = referrer.substring(3);
referrer = parseInt(referrer);
if (referrer == (a-1))
{
b = a;
var y = "<tr><td><input name=txt" + b + " type=text id=txt" + b + " size=20></td><td> </td><td><input name=txt" + (b+1) + " type=text id=txt" + (b+1) + " size=10></td><td> </td><td><input name=txt" + (b+2) + " type=text id=txt" + (b+2) + " size=50 maxlength=50 onChange=addCode()></td></tr>";
oldhtml = (document.getElementById('ingtabel')).innerHTML;
oldhtml = oldhtml.substring(oldhtml.indexOf('<TBODY>')+7,oldhtml.indexOf('</TBODY>'));
var newhtml = oldhtml+y;
(document.getElementById('ingtabel')).innerHTML= newhtml;
}
}
</script>
---------------------------------------------------------
Men mit script fungerer ikke. Og det forstår jeg ikke. For hvis jeg får den til at udskrive koden, ser den helt rigtig ud. Men hvis jeg forsøger at add´e den til tabellens innerHTML, så får jeg en 'error on page'.
Nogle gode forslag til, hvordan det kan løses - evt med en helt anden metode eller uden javaScript. Sagen er den, at brugeren skal have mulighed for at indtaste uendeligt mange ingredienser i en madopskrift. Og derfor skal der tilføjes nye tekstbokse, hver gang de sidste er blevet taget i brug.
