为什么我的JS代码无法运行?

问题描述 投票:0回答:3

由于某种原因,我遇到了这个问题:Uncaught TypeError: Cannot read property 'value' of null on the document.getElementById line。这是什么问题??我不知道。

HTML 代码:

<html>
<head>
<title>I am a chrome extension</title>
<link rel="stylesheet" href="css/style.css" media="screen" type="text/css" />
<script src="scripts.js"></script>
</head>
<body bgcolor="#34495e">
 <div class="login-card">
    <h1>Please Enter Your Birthday</h1><br>
  <form>
    <input type="date" name="user" placeholder="Username">
    <input type="submit" id="age" name="submit" class="login login-submit" value="Submit">
  </form>
  </div>
</body> 
</html>

scripts.js

function getAge()
{
    var age = document.getElementById("age").value;
    console.log(age);

}
document.getElementById('age').onclick = getAge();
javascript dom
3个回答
1
投票

在函数调用函数后使用括号。要将事件绑定到函数,只需引用不带括号的

getAge
,如下所示:

document.getElementById('age').onclick = getAge;

您还应该确保等到 DOM 使用 onload 事件完全加载之后。您还应该花时间仔细阅读正确绑定 javascript 事件


1
投票

因为您将脚本包含在头部,并且它在 dom 元素之前加载。 您还需要应用 pswg 的答案。

解决这个问题的方法就是简单地使用window.onload

window.onload = function () {
    document.getElementById("age").onclick = getAge;
}

0
投票

这是因为在评估实际的 html 之前,您将 js 文件包含在头部中。您无法 getElementById 因为该元素还不存在!

一般来说,js 文件包含在底部,位于结束 body 标签的正上方。为了确保这一点,请使用 document.onload();

© www.soinside.com 2019 - 2024. All rights reserved.