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

求助:JavaScript无法获取表单输入框值,返回undefined

解决表单输入值获取undefined的问题

核心问题及修复方案:

  1. getElementsByName返回集合,无法直接取value
    document.getElementsByName()返回的是NodeList元素集合,必须通过索引[0]获取单个输入框元素后,再访问.value属性。

  2. 变量名拼写错误
    JavaScript代码里的confirmPassowrd拼写错误,应为confirmPassword,和HTML中输入框的name属性值保持一致。

  3. 未阻止表单默认提交行为
    点击提交按钮后,表单会默认刷新页面,导致控制台日志无法留存,需在函数中阻止默认提交动作。

  4. 用数组存储键值对数据不合适
    用户数据是键值对结构,应使用对象{}而非数组[]存储。


修复后的代码:

JavaScript代码:

function registrar(event) {
  // 阻止表单默认提交刷新页面
  event.preventDefault();

  // 通过[0]获取集合中的单个输入框元素
  let nombre = document.getElementsByName("nombre")[0].value;
  let apellido = document.getElementsByName("apellido")[0].value;
  let username = document.getElementsByName("username")[0].value;
  let email = document.getElementsByName("email")[0].value;
  let password = document.getElementsByName("password")[0].value;
  // 修正拼写错误
  let confirmPassword = document.getElementsByName("confirmPassword")[0].value;

  console.log("Pass: " + password);
  console.log("Confirm: " + confirmPassword);

  if (password !== confirmPassword) {
    alert("Contraseñas No coinciden");
  }

  // 使用对象存储用户数据
  var usuario = {};
  usuario["nombre"] = nombre;
  usuario["apellido"] = apellido;
  usuario["username"] = username;
  usuario["email"] = email;
  usuario["password"] = password;

  console.log(usuario);
}

HTML代码(仅修改表单的onsubmit属性):

<form class="registrarse__container" id="registro__form" method="POST" onsubmit="registrar(event)">
  <!-- 其余HTML内容保持不变 -->
</form>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 09:30:45