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

登录页面点击按钮显示用户名返回[object HTMLCollection]问题求助

解决:点击登录按钮后显示[object HTMLCollection]而非用户名

问题原因

你用document.getElementsByClassName("Nombre")获取的是HTMLCollection元素集合,不是输入框里的文本值。直接把这个集合和字符串拼接,JS会自动将其转为默认的字符串表示[object HTMLCollection],这就是你看到的结果。

修复方案

核心是获取输入框的value属性(即用户输入的内容),有两种简单实现方式:

方式1:从元素集合中取目标输入框并获取值

修改JS代码,点击按钮时再获取输入框的实时值:

function entrar() {
  // 从class集合中取出唯一的输入框,获取当前输入值
  var nombre = document.getElementsByClassName("Nombre")[0].value;
  // 清空body内容
  document.body.innerHTML = "";
  // 创建并添加欢迎文本
  var Elemento = document.createElement("h1");
  Elemento.textContent = "bienvenido " + nombre;
  document.body.appendChild(Elemento);
}

方式2:利用输入框的ID直接获取(更高效)

因为用户名输入框有id="Name",用getElementById可以直接定位元素,比通过class获取更精准:

function entrar() {
  var nombre = document.getElementById("Name").value;
  document.body.innerHTML = "";
  var Elemento = document.createElement("h1");
  Elemento.textContent = "bienvenido " + nombre;
  document.body.appendChild(Elemento);
}

完整修正代码

HTML

<div class="Todo">
  <div class="Login">
    <h2>Nombre</h2>
    <input type="text" class="Nombre" id="Name">
  </div>
  <div class="contenedor">
    <h2 class="palabra">Contraseña</h2>
    <input type="password" id="Contraseña" class="Contraseña">
  </div>

  <button type="button" onclick=entrar()>Entrar</button>
</div>

CSS

.contenedor {
  display: flex;
  justify-content: center;
  align-items: center;
}

.Login {
  display: flex;
  justify-content: center;
  align-items: center;
}

.Todo {
  display: block;
  justify-content: center;
}

JS

function entrar() {
  var nombre = document.getElementById("Name").value;
  document.body.innerHTML = "";
  var Elemento = document.createElement("h1");
  Elemento.textContent = "bienvenido " + nombre;
  document.body.appendChild(Elemento);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 08:25:13