首页 > 解决方案 > 输入给出“空值”

问题描述

当我在 JS 文件中打印出 txtDisplayname 时,它​​给了我 null。任何人都可以帮忙吗?

我想在按下登录或注册按钮时打印 txtDisplayname,但不是注册输入,而是给出一个空值

firebase.auth().onAuthStateChanged(firebaseUser => {
  if (firebaseUser) {
    const Displayname = document.getElementById('txtDisplayname');
    console.log(Displayname);
    welcomeBackText.innerHTML = "Welcome back " + Displayname;
    btnLogout2.addEventListener('click', e => {
      firebase.auth().signOut();
    });
  }
  else {
    location.href = './login/loginPage.html'
  }
})
<div class="container">
<input type="email" id="txtEmail"  placeholder="Email" >
<hr>
<input type="password" id="txtPassword"  placeholder="Password" >
<hr>
<input type="text" id="txtDisplayname"  placeholder="Display Name" >
<br>
<button id="btnLogin" class="btn btn-action">Log In</button>

<button id="btnSignUp" class="btn btn-secondary">Sign up</button>

<button id="btnLogout" class="btn btn-action hide">Log Out</button>

</div>

标签: javascripthtml

解决方案


  • 当您尝试选择该元素时,它可能尚未加载。等待DOMContentLoaded,然后尝试选择它。

  • 您必须检索输入的值。利用Displayname.value

尝试这个:

document.addEventListener("DOMContentLoaded", function() {
  if (firebaseUser) {
    const Displayname = document.getElementById('txtDisplayname');
    console.log(Displayname);
    welcomeBackText.innerHTML = "Welcome back " + Displayname.value;
    btnLogout2.addEventListener('click', e => {
      firebase.auth().signOut();
    });
  } else {
    location.href = './login/loginPage.html'
  }
})

推荐阅读