Javascript 通过用户创建对象生成表单中的值';增补列表器';空的

Javascript 通过用户创建对象生成表单中的值';增补列表器';空的,javascript,arrays,null,push,addeventlistener,Javascript,Arrays,Null,Push,Addeventlistener,我试图创建一个表单,用户生成的值被发送到一个数组中,稍后我将在另一个页面上显示该数组。问题是我一直遇到这样的类型错误:无法读取null的属性'addEventListener'。我知道这是由不同的原因造成的,这就是为什么我想让你看看我的代码,看看你是否发现了任何问题 我对Javascript非常陌生,这是一个学校作业,所以我非常感谢提供的任何信息 var persons = []; document.querySelector("form button").addEventListener(

我试图创建一个表单,用户生成的值被发送到一个数组中,稍后我将在另一个页面上显示该数组。问题是我一直遇到这样的类型错误:无法读取null的属性'addEventListener'。我知道这是由不同的原因造成的,这就是为什么我想让你看看我的代码,看看你是否发现了任何问题

我对Javascript非常陌生,这是一个学校作业,所以我非常感谢提供的任何信息

var persons = [];

 document.querySelector("form button").addEventListener('click', 
 function(event) {

var input = document.querySelectorAll("form input");
var newPerson = {};
for (var i = 0; i < input.length; i++) {
    newPerson[input[i].name] = input[i].value;
    input[i].value='';
}
persons.push(newPerson);
console.log(persons);
event.preventDefault();
var persons=[];
document.querySelector(“表单按钮”).addEventListener(“单击”,
功能(事件){
var输入=document.queryselectoral(“表单输入”);
var newPerson={};
对于(变量i=0;i
},假)







贝卡自由贸易区
您的JS代码很可能在页面加载之前执行。所以当脚本试图找到“表单按钮”时,它还不存在。
尝试将脚本移动到表单元素之后。

您需要在
表单
之后导入脚本,或者使用
窗口。如果您不介意我询问,请联机加载
事件。只是想学点新东西。如何在不使用window.onload的情况下执行此操作?通常在关闭
'
标记之前,将
'
作为页面上的最后一个元素。通过这种方式,您可以确保页面上的所有元素都已存在于DOM中。
<form>
        <input type="text" name="firstName" value="" placeholder="Namn" /><br />
        <input type="text" name="lastName" value="" placeholder="Efternamn" /><br />
        <input type="text" name="phone" value="" placeholder="Telefonnummer" /><br />
        <input type="textblock" name="injuries" value="" placeholder="Skador?" /><br />
        <input type="text" name="eMail" value="" placeholder="E-mail" /><br />
        <button>Bekräfta</button>
      </form>