javascript - 表单提交时页面重新加载,getElementById 返回 null,表单不工作
问题描述
该代码应该使用 ID 从表单中获取数据,并将其存储在一个名为 studRec 的数组对象中。但是,这一切都必须在客户端完成,因此页面必须保存数据,以用于其他功能。
我试过添加 return false; 它什么也不做。
<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>
它应该登录到控制台中输入表格的信息。
解决方案
更改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);
}
推荐阅读
- testing - 为赛普拉斯配置 Chrome 选项
- angular - 为什么 ionic 5 ngFor 循环不适用于组件
- reactjs - 从外部 api 获取数据时反应应用程序中的 Cors 错误
- python - 确定子树 t 是否在树 s 内
- apache-kafka - 如何在 Google BigQuery 中从连续上传的 Kafka 文本文件到 Google 云存储中创建表
- infinispan - 为什么“ISPN000312:由于优雅的离开者而丢失数据”是针对 INVALIDATION_SYNC 缓存的警告
- c# - 桌面上的 Xamarin.Forms - 基于文档的应用程序
- php - 来自基于 2 个服务器的表的 symfony 原始 sql
- java - 如何在硒测试中使用 java 代码检测两个 chrome 浏览器窗口之间的音频连接?
- angular - Angular - 2 路数据绑定 rxjs 主题属性,从不向子级发出,但在父级上发出