Javascript 表单提交时重新加载页面,getElementById返回null,表单不工作

Javascript 表单提交时重新加载页面,getElementById返回null,表单不工作,javascript,html,addeventlistener,getelementbyid,arrayobject,Javascript,Html,Addeventlistener,Getelementbyid,Arrayobject,代码应该使用id从表单中获取数据,并将其存储在名为studRec的数组对象中。但是,这一切都必须在客户端完成,因此页面必须保留数据,以便用于其他功能 我尝试添加returnfalse;它什么也不做 <script> var studRec = []; document.getElementById("save").addEventListener("click", save); document.getElementById("ver

代码应该使用id从表单中获取数据,并将其存储在名为studRec的数组对象中。但是,这一切都必须在客户端完成,因此页面必须保留数据,以便用于其他功能

我尝试添加returnfalse;它什么也不做

<script>
var studRec = [];
            document.getElementById("save").addEventListener("click", save); 
            document.getElementById("verify").addEventListener("click", ver);
            function save(){
                var x = document.getElementsByClassName("fsubj");

                studRec[studRec.length] =  {
                    section: document.getElementbyId("section").value,
                    name: document.getElementbyId("name").value,
                    gender: document.getElementbyId("gender").value,
                    age: document.getElementbyId("Age").value,
                    subjects: x 
                }
                console.log(studRec);
            }
</script>

var studRec=[];
document.getElementById(“保存”).addEventListener(“单击”,保存);
document.getElementById(“验证”).addEventListener(“单击”,版本);
函数save(){
var x=document.getElementsByClassName(“fsubj”);
studRec[studRec.length]={
节:document.getElementbyId(“节”).value,
名称:document.getElementbyId(“名称”).value,
性别:document.getElementbyId(“性别”).value,
年龄:document.getElementbyId(“年龄”).value,
主题:x
}
控制台日志(studRec);
}

它应该将输入表单的信息登录到控制台。

更改
save
方法以接受单个输入参数,即传递的事件实例单击事件,然后使用
preventDefault

function save(e) {
  e.preventDefault();
  ...
}

完整答案:

var studRec = [];
document.getElementById("save").addEventListener("click", save); 
document.getElementById("verify").addEventListener("click", ver);
function save(e){
  e.preventDefault();

  var x = document.getElementsByClassName("fsubj");

  studRec[studRec.length] =  {
      section: document.getElementbyId("section").value,
      name: document.getElementbyId("name").value,
      gender: document.getElementbyId("gender").value,
      age: document.getElementbyId("Age").value,
      subjects: x 
  }
  console.log(studRec);
}

你是怎么做到的?@UrielOrpilla你能确认上面的完整答案解决了你的问题吗?很抱歉有任何误解,但我的意思是如何在代码中插入e?它在控制台中表示未定义e。如果是这样的话,我该如何定义e?这很奇怪,因为它对我来说是正常的;有关基本示例,请参见。打开控制台,查看单击红色div时记录的传递的
事件
实例。