Javascript can';t figure脚本在正文中时出现addEventListener错误

Javascript can';t figure脚本在正文中时出现addEventListener错误,javascript,html,Javascript,Html,我正在使用addEventListner对表单执行提交按钮,但我被未定义错误的addEventlister卡住了。我测试了元素是否为true,它返回true 这是我的表格: <form action="POST"> <input name="name" type="text" autocomplete="given-name"> <input name="lastname" type="text" autocomplete="given-name"&

我正在使用
addEventListner
对表单执行提交按钮,但我被未定义错误的
addEventlister
卡住了。我测试了元素是否为
true
,它返回
true

这是我的表格:

<form action="POST">
    <input name="name" type="text" autocomplete="given-name">
    <input name="lastname" type="text" autocomplete="given-name">
    <button type="button" id="for_input">Submit</button>
</form>
错误:

未捕获的TypeError:无法读取的属性“addEventListener” 未定义


我尝试添加到html正文的,但仍然收到相同的错误。

您忘记添加名称,您使用的是id=“for\u input”而不是name=“for\u input”

提交

您忘记添加名称,您使用的是id=“for\u input”而不是name=“for\u input”

提交

您没有任何元素名称
用于\u输入
,但是您有一个按钮,其ID为用于\u输入。因此,在
文档上使用
querySelector
getElementById
方法,而不是
getElementsByName
方法

var el = document.querySelector('#for_input');
if (el) //check if true
  console.log("Value is true");
else
  console.log("Value is false");

//define alert to check click        
var showMe = function () { alert("clicked worked"); };


el.addEventListener("click", showMe, false);

document.getElementsByName('for_input')
返回分配给
el
NodeList[]
,因为在
文档
对象中找不到
name=“for_input”
的html元素。后来,当您调用
el[0]
时,它给您提供了
undefined
,因为
el
有一个空节点列表。因此,
未定义。addEventListener(..)
调用导致了您在日志中看到的错误。

您没有任何元素名称
用于\u输入
,但是您有一个按钮,其ID为用于\u输入
。因此,在
文档上使用
querySelector
getElementById
方法,而不是
getElementsByName
方法

var el = document.querySelector('#for_input');
if (el) //check if true
  console.log("Value is true");
else
  console.log("Value is false");

//define alert to check click        
var showMe = function () { alert("clicked worked"); };


el.addEventListener("click", showMe, false);

document.getElementsByName('for_input')
返回分配给
el
NodeList[]
,因为在
文档
对象中找不到
name=“for_input”
的html元素。后来,当您调用
el[0]
时,它给您提供了
undefined
,因为
el
有一个空节点列表。因此
未定义。addEventListener(..)
调用导致了您在日志中看到的错误。

您缺少名为
的元素,该元素的按钮id为\u input
,因此请使用
getElementById

var el = document.getElementById('for_input');
现在
el
不是数组,所以不需要像
el[0]
那样添加数组位置,只需使用
el

el.addEventListener("click", showMe, false);

对于_input
,您缺少名为
的元素及其按钮id,因此请使用
getElementById

var el = document.getElementById('for_input');
现在
el
不是数组,所以不需要像
el[0]
那样添加数组位置,只需使用
el

el.addEventListener("click", showMe, false);

谢谢你工作得很有魅力。我已经被困了一个半小时了。谢谢你,好好工作。我已经被困了一个半小时了。