You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何输入框值无法显示在动态HTML表格中?

问题:动态添加表格行时出现空单元格

我正在使用JavaScript制作一个可添加名字和姓氏的动态HTML表格,但点击提交按钮时,表格会创建无输入值的空单元格。

原HTML代码

<input type="text" id="name" placeholder="First Name">
<input type="text" id="lastname" placeholder="Last Name">
<input type="button" id ="submit" value="Submit" >

<table border="1" id="table">
    <tr>
    <th>First Name</th>
    <th>Last Name</th>
    </tr>
</table>

原JavaScript代码

let name = document.getElementById("name").value;
let lastname = document.getElementById("lastname").value;
let submit = document.getElementById("submit");
let table = document.getElementById("table");

var rowNum = 1;

submit.addEventListener("click" , function(){
  var row = table.insertRow(rowNum);
  var cell0 = row.insertCell(0);
  var cell1 = row.insertCell(1);
  cell0.innerHTML = name;
  cell1.innerHTML = lastname;
  rowNum++;
});

问题原因

页面加载完成后你立即获取了输入框的value,此时输入框还没有任何内容,所以name和lastname的值是空字符串。之后点击提交按钮时,一直使用的是这个初始空值,没有重新读取输入框的最新内容。

修正后的JavaScript代码

let submit = document.getElementById("submit");
let table = document.getElementById("table");

var rowNum = 1;

submit.addEventListener("click" , function(){
  // 在点击事件内获取输入框的当前值
  let name = document.getElementById("name").value;
  let lastname = document.getElementById("lastname").value;
  
  var row = table.insertRow(rowNum);
  var cell0 = row.insertCell(0);
  var cell1 = row.insertCell(1);
  cell0.innerHTML = name;
  cell1.innerHTML = lastname;
  rowNum++;
  
  // 可选:清空输入框,方便下次输入
  document.getElementById("name").value = "";
  document.getElementById("lastname").value = "";
});

说明

将获取输入框值的代码移到点击事件的回调函数内部,每次点击提交按钮时都会重新读取输入框的当前内容,就能正确将输入的姓名添加到表格中。额外添加的清空输入框代码,能提升后续输入的用户体验。

内容的提问来源于stack exchange,提问作者mu9u1t

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 08:36:22