下面的 JavaScript 在 Internet Explorer 中运行良好,但在 FireFox 中不起作用。
它在“NewField is undefined”处挂断,这将是一行:
for (var i=0;i<NewField.length;i++)
这是将重命名该表行上的表单字段的循环。
在这里您可以看到整个页面http://www.sorenwinslow.com/CloneRowTest.asp
function CloneRows(TableRowId)
{
var NumRows = document.forms["TestForm"].NumRows.value;
NumRows++;
document.forms["TestForm"].NumRows.value = NumRows;
var RowToClone = document.getElementById(TableRowId);
var NewTableRow = RowToClone.cloneNode(true);
NewTableRow.id = TableRowId + NumRows ;
NewTableRow.style.display = "table-row";
var NewField = NewTableRow.all;
for (var i=0;i<NewField.length;i++)
{
var theName = NewField[i].name;
if (theName)
{
NewField[i].name = theName + NumRows;
}
}
var insertHere = document.getElementById(TableRowId);
insertHere.parentNode.insertBefore(NewTableRow,insertHere);
}