使用javascript的asp中的动态文本框

时间:2012-10-05 04:51:14

标签: javascript asp.net

我正在尝试在按钮单击时在表格中创建文本框。我在按钮单击中编写了javascript代码,它可以工作。我的问题是,在添加下一行文本框时,将清除在上一行文本框中输入的数据。给出了代码和屏幕截图。请帮助解决这个问题。

function addRow(tableID) {
   var table = document.getElementById(tableID);
   var count = table.rows.length - 1;
   table.innerHTML += "<tr> <td>"+count+"</td> <td><input type='text' id='date" + count + "' size='20'></td> <td><input type='text' id='from" + count + "' size='20'></td> <td><input type='text' id='to" + count + "' size='20'></td> <td><input type='text' id='mode" + count + "' size='20'></td> </tr>";
}

点击添加按钮我丢失了与Sl.no1相对应的数据

1 个答案:

答案 0 :(得分:4)

innerHTML不适合您的方案。你真的应该使用Javascript提供的insertRowinsertCell方法。它更清洁,可维护,更容易阅读。 innerHTML会覆盖元素的内容,这是你的问题。如果您使用了.innerHTML += "something",那么它可能会有效,但是每次调用addRow时都无法构建表格 - 您只需通过HTML追加新行。

https://developer.mozilla.org/en-US/docs/DOM/table.insertRow

https://developer.mozilla.org/en-US/docs/DOM/tableRow.insertCell

这样,每次调用函数addRow时都不必完全构造表。您可以使用insertRow并添加一个带有文本框的新文件夹。您以前的行根本不会被覆盖,重新创建或搞砸(只要您正确行事)。虽然链接中有示例,但我会在几分钟内发布一个包含代码的示例。

更新:

http://jsfiddle.net/MJ2md/

要证明我的意思。它可能不是最干净的,我只是想快速写出来!