使用 javascript 在表中插入表单值

Yes*_*dar 1 javascript forms html-table

document.getElementById("submit").onclick = function () {
  document.getElementById("table").style.display = "block";

  var table = document.getElementById("table");
  var row = table.insertRow(-1);
  var date = row.insertCell(0);
  var desc = row.insertCell(1);
  var amt = row.insertCell(2);
  date.innerHTML = document.getElementById("date").value;
  desc.innerHTML = document.getElementById("desc").value;
  amt.innerHTML = document.getElementById("amount").value;

  return false;
}
Run Code Online (Sandbox Code Playgroud)
table {
  display: none;
}
Run Code Online (Sandbox Code Playgroud)
<h1>Expense Tracker</h1>

<form action="">
  <label id="date">Date: </label>
  <input type="date" id="date">
  <br>

  <label id="desc">Description: </label>
  <input type="text" id="desc">
  <br>

  <label id="amount">Amount: </label>
  <input type="text" id="amount">
  <br>

  <input type="button" id="submit" value="Submit">
  <br>
</form>

<table id="table">
  <tr>
    <th>Date</th>
    <th>Description</th>
    <th>Amount</th>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

我想通过单击提交按钮将表单中给出的输入插入到表中。我尝试使用此方法执行此操作,但它始终显示未定义。我哪里出错了?有更好的选择来做到这一点吗?我只想使用 JavaScript。 这是我得到的输出

Kyl*_*lro 6

问题是你的标签。它们与您的输入字段具有相同的 ID。由于 document.getElementById("date") 只查找第一次出现的所需 id,因此会返回标签。

要解决此问题,您可以将标签更改为

<label for="date">Date: </label>
Run Code Online (Sandbox Code Playgroud)

<label for="date">Date: </label>
Run Code Online (Sandbox Code Playgroud)