【问题标题】:document.getElementById returns always null [duplicate]document.getElementById 始终返回 null [重复]
【发布时间】:2021-03-05 19:08:52
【问题描述】:

我得到了这段代码:

<form class="register" id="reg-form">
        <input type="text" class="input-box" placeholder="Username" id="username" required><br><br>
        <input type="text" class="input-box" placeholder="Full Name" id="name" required><br><br>
        <input type="email" class="input-box" placeholder="Email" id="email" required><br><br>
        <input type="password" class="input-box" placeholder="Password" id="password" required><br><br>
        <input type="password" class="input-box" placeholder="Repeat Password" id="passwordrep" required><br><br><br>
        <button class="btn-rounded-md black" id="reg-btn">Register</button>
    </form>

还有这个js:

window.onload = function() {
  var email = document.getElementById('email').value;
  var password = document.getElementById('password').value;
  var reppassword = document.getElementById('passwordrep').value;

  document.getElementById('reg-form').addEventListener('submit', function(e) {
    e.preventDefault();
    if (password == reppassword) {
      console.log("Passwords match. Submitting...");

      auth.createUserWithEmailAndPassword(email, password).then(userCredential => {
        console.log('Signed up!');
      });
    }
  });
}

但是在 js 开头创建的所有变量都返回 null。有什么想法吗?

【问题讨论】:

  • null 还是空字符串?当您的代码运行时,所有这些 &lt;input&gt; 值都将为空
  • 您试图在加载时从这些元素中获取值,其中它们将为空。您应该将它们移动到“提交”函数中,此时,您可以假设这些输入已被填充。

标签: javascript


【解决方案1】:

您是在页面加载时检索值,而不是在提交时检索;它们总是空的(不是空的,而是空字符串)。改为:

document.getElementById('reg-form').addEventListener('submit', function(e) {
  e.preventDefault();
  var email = document.getElementById('email').value;
  var password = document.getElementById('password').value;
  var reppassword = document.getElementById('passwordrep').value;

  if (password == reppassword) {
    console.log("Passwords match. Submitting...");

    auth.createUserWithEmailAndPassword(email, password).then(userCredential => {
      console.log('Signed up!');
    });
  }
});

【讨论】:

  • ? 愚蠢的错误。我从没想过会是这样
猜你喜欢
  • 2011-11-01
  • 1970-01-01
  • 2011-02-07
  • 2015-12-14
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
相关资源
最近更新 更多