使用 JavaScript 向 table 添加新行时重置输入字段
Reset input fields when adding a new row to a table using JavaScript
在我的 HTML 页面上,有一个 table 表单。 table 的第一行是列的标签,其余行包含输入文本字段。
在 table 下,有一个按钮操作 JavaScript 函数,它复制 table 末尾的第一行。
问题是文本也从第一行字段复制到新添加的行字段。相反,我想清除新添加的行字段中的文本。我该怎么做?
这是我的代码:
<form action="update.php" method="post" enctype="multipart/form-data">
<table id="addresses" class="form" border="1">
<tbody>
<tr>
<p>
<th>
</th>
<th>
<label for='UPDATE_NAME'>Name</label>
</th>
<th>
<label for='UPDATE_NUMBER'>Phone Number (With Country Code)</label>
</th>
<th>
<label>Address (House No., Street, City, State, ZIP Code, P.O. Box)</label>
</th>
</p>
</tr>
<?php
for ($i = 0; $i < count($addresses); $i++) {
$id = str_pad($i, 2, '0', STR_PAD_LEFT);
echo "<tr>";
echo "<p>";
echo "<td>";
echo "<input type='checkbox' name='chk[]' />";
echo "</td>";
echo "<td>";
echo "<input type='text' name='UPDATE_NAME[]' value='".$names[$id]['S']."' />";
echo "</td>";
echo "<td>";
echo "<input type='tel' name='UPDATE_NUMBER[]' value='".$numbers[$id]['S']."' />";
echo "</td>";
echo "<td>";
echo "<input type='text' name='UPDATE_ADDRESS[]' value='".$addresses[$id]['S']."' />";
echo "</td>";
echo "</p>";
echo "</tr>";
}
?>
</tbody>
</table>
<p>
<input type="button" value="Add Address" onClick="addRow('addresses')" />
</p>
<script>
function addRow(tableID) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
if (rowCount < 10) {
var row = table.insertRow(rowCount);
var colCount = table.rows[0].cells.length;
for (var i = 0; i < colCount; i++) {
var newcell = row.insertCell(i);
newcell.innerHTML = table.rows[1].cells[i].innerHTML;
}
document.getElementById("APP_UPDATE_NAME[" + rowCount + "]").reset();
} else {
alert("Maximum Branches Number is 10");
}
}
</script>
<input type="submit" class="flat-button form" name="SUBMIT" value="Update Addresses" />
</form>
在上面的代码中,您可以看到带有标签的第一行,然后是一个 PHP 循环,它从 PHP 数组中添加信息。在 table 之后,您可以看到 JavaScript 函数向 table 添加一行。
我需要在脚本中添加什么才能在没有输入字段文本的情况下进行复制?
您可以手动设置新行的值,而不是复制它。像这样:
newcell.innerHTML = "<input type='...' name='...' value='...' />";
这样您就可以控制进入新单元格的内容。
在我的 HTML 页面上,有一个 table 表单。 table 的第一行是列的标签,其余行包含输入文本字段。
在 table 下,有一个按钮操作 JavaScript 函数,它复制 table 末尾的第一行。
问题是文本也从第一行字段复制到新添加的行字段。相反,我想清除新添加的行字段中的文本。我该怎么做?
这是我的代码:
<form action="update.php" method="post" enctype="multipart/form-data">
<table id="addresses" class="form" border="1">
<tbody>
<tr>
<p>
<th>
</th>
<th>
<label for='UPDATE_NAME'>Name</label>
</th>
<th>
<label for='UPDATE_NUMBER'>Phone Number (With Country Code)</label>
</th>
<th>
<label>Address (House No., Street, City, State, ZIP Code, P.O. Box)</label>
</th>
</p>
</tr>
<?php
for ($i = 0; $i < count($addresses); $i++) {
$id = str_pad($i, 2, '0', STR_PAD_LEFT);
echo "<tr>";
echo "<p>";
echo "<td>";
echo "<input type='checkbox' name='chk[]' />";
echo "</td>";
echo "<td>";
echo "<input type='text' name='UPDATE_NAME[]' value='".$names[$id]['S']."' />";
echo "</td>";
echo "<td>";
echo "<input type='tel' name='UPDATE_NUMBER[]' value='".$numbers[$id]['S']."' />";
echo "</td>";
echo "<td>";
echo "<input type='text' name='UPDATE_ADDRESS[]' value='".$addresses[$id]['S']."' />";
echo "</td>";
echo "</p>";
echo "</tr>";
}
?>
</tbody>
</table>
<p>
<input type="button" value="Add Address" onClick="addRow('addresses')" />
</p>
<script>
function addRow(tableID) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
if (rowCount < 10) {
var row = table.insertRow(rowCount);
var colCount = table.rows[0].cells.length;
for (var i = 0; i < colCount; i++) {
var newcell = row.insertCell(i);
newcell.innerHTML = table.rows[1].cells[i].innerHTML;
}
document.getElementById("APP_UPDATE_NAME[" + rowCount + "]").reset();
} else {
alert("Maximum Branches Number is 10");
}
}
</script>
<input type="submit" class="flat-button form" name="SUBMIT" value="Update Addresses" />
</form>
在上面的代码中,您可以看到带有标签的第一行,然后是一个 PHP 循环,它从 PHP 数组中添加信息。在 table 之后,您可以看到 JavaScript 函数向 table 添加一行。
我需要在脚本中添加什么才能在没有输入字段文本的情况下进行复制?
您可以手动设置新行的值,而不是复制它。像这样:
newcell.innerHTML = "<input type='...' name='...' value='...' />";
这样您就可以控制进入新单元格的内容。