开发者问题收集

未捕获的类型错误:无法读取 null 读取 addeventlistener 的属性

2023-01-01
533

我正在开展一个项目,其中在输入的表单中,我需要获取电子邮件 ID 的输入值并控制台记录它,因此在获取输入值时它会显示 Uncaught TypeError:无法读取 null 的属性(读取'addEventListener')

这两个图像显示了获取输入值的 js 代码,另一个图像显示了页面中的错误

在此处输入图像描述

在此处输入图像描述

我希望我需要解决这个问题,我需要获取输入值

window.addEventListener('DOMContentLoaded', () => {
  let btn = document.querySelector('.btn');
  let Sign_email = document.querySelector('#Sign_email');
  const getInputvalue = () => {
    let userinput = Sign_email.value;
    console.log(userinput)
  }
  btn.addEventListener('click', getInputvalue)
})
<form method="POST" action="/sign" class="sign-in-form">
  <h2 class="title">Sign in</h2>
  <div class="input-field">
    <i class="fas fa-user"></i>
    <input name="Sign_email" id="Sign_email" type="email" placeholder="Email Id" />
  </div>
  <div class="input-field">
    <i class="fas fa-lock"></i>
    <input name="Sign_password" id="Sign_password" type="password" placeholder="Password" />
    <p id="error">Login again</p>
  </div>
  <input type="submit" value="Login" class="btn solid" />

</form>
2个回答

您的代码在我这边运行良好。如果您能分享发生错误的行就更好了

Mani Kandan
2023-01-01

针对您的问题的 JS fiddle 编译器图像

我在 JS Fiddle(一个 javascript、HTML、CSS 在线编译器)中尝试了您的 js 代码和 HTML 模板。但它给出了所需的输出。我附上了它的图片。

通常,如果在文档中找不到元素,则 querySelector 返回 null。因此,也许 querySelector 无法找到带有类的按钮元素。

请尝试类似:

const btn = document.querySelector('input[type=submit]');

或其他方法,例如为您的按钮提供“id”属性,然后尝试获取带有 id 的按钮。

希望这有帮助!

Rahul Kumar
2023-01-01