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

如何用原生JavaScript通过表单向常量USERS数组添加数据并展示?

如何用原生JavaScript将表单数据添加到数组并展示内容?

我来帮你搞定这个需求!你想要用原生JS把表单提交的用户数据加入USERS常量数组,同时在.show容器里展示数组内容对吧?咱们一步步来调整代码:

首先先修正你原代码里的一个小问题:USERS数组里的用户名得用字符串包裹(比如'Brit'而不是Brit),不然会被当成未定义变量报错。

接下来核心要做的几件事:

  • 阻止表单默认的提交刷新行为,不然页面一刷新数组数据就没了
  • 获取表单输入的姓名和年龄值,注意把年龄转成数字类型
  • 把新的用户对象添加到USERS数组里
  • 写一个渲染函数,把数组内容动态展示到.show容器中

下面是修改后的完整代码:

<!DOCTYPE html>
<head>
<title>Users</title>
<style>
/* 加一点基础样式让展示更清晰 */
.show {
  margin-top: 20px;
  padding: 12px;
  border: 1px solid #e0e0e0;
  border-radius: 4px;
}
.user-item {
  margin: 8px 0;
  padding: 6px;
  background-color: #f8f8f8;
  border-radius: 2px;
}
</style>
</head>
<body>
<main>
<form id="userForm">
<label for="name">Name:</label>
<input type="text" id="name" name="name" required/>
<label for="age">Age:</label>
<input type="number" id="age" name="age" min="1" required/>
<input type="submit" value="submit" class="submit"/>
</form>
<div class="show">
</div>
</main>
<script>
// 修正字符串引号问题,初始化用户数组
const USERS = [
  { name: 'Brit', age: 45 },
  { name: 'John', age: 55 }
];

// 获取DOM元素
const userForm = document.getElementById('userForm');
const showContainer = document.querySelector('.show');

// 渲染用户数组到页面的函数
function renderUserList() {
  // 先清空容器,避免重复渲染内容
  showContainer.innerHTML = '';
  
  // 遍历数组创建每个用户的展示元素
  USERS.forEach(user => {
    const userCard = document.createElement('div');
    userCard.className = 'user-item';
    userCard.textContent = `Name: ${user.name}, Age: ${user.age}`;
    showContainer.appendChild(userCard);
  });
}

// 页面加载完成后先渲染初始的用户列表
renderUserList();

// 监听表单提交事件
userForm.addEventListener('submit', function(e) {
  // 阻止表单默认的刷新提交行为
  e.preventDefault();
  
  // 获取输入框的值,处理一下格式
  const userName = document.getElementById('name').value.trim();
  const userAge = parseInt(document.getElementById('age').value);
  
  // 将新用户对象添加到数组
  USERS.push({ name: userName, age: userAge });
  
  // 重新渲染用户列表
  renderUserList();
  
  // 清空表单输入框,方便下一次填写
  userForm.reset();
});
</script>
</body>
</html>

关键代码说明:

  • e.preventDefault():这一步很重要,能阻止表单提交后默认的页面刷新,保证我们用JS处理的数据不会丢失。
  • renderUserList()函数:专门负责把USERS数组的内容转换成DOM元素展示到页面,每次添加新用户后调用它就能实时更新展示内容。
  • 表单验证:给输入框加了required和min属性,做简单的前端校验,避免空值或无效年龄被提交。
  • form.reset():提交完成后清空输入框,提升用户填写体验。

这样修改后,你提交表单时,新的用户数据就会被加入USERS数组,页面上的.show区域也会立刻更新展示所有用户信息啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:13:59