Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 元素从数组中消失_Javascript_Html - Fatal编程技术网

Javascript 元素从数组中消失

Javascript 元素从数组中消失,javascript,html,Javascript,Html,我正在尝试创建一个简单的“簿记”web应用程序,如Odin项目中指定的那样。我的问题是,当我单击表单中的“提交”按钮时,数据被发送到数组,但随后立即从数组中消失。在js文件本身中运行“addBookToLibrary”函数效果很好,但是通过onclick运行它是有问题的 我包括了HTML和js 非常感谢您的帮助,因为我不明白为什么在js文件中调用该函数时该函数有效,而在通过HTMLonclick方法调用时该函数无效 让myLibrary=[] const table=document.quer

我正在尝试创建一个简单的“簿记”web应用程序,如Odin项目中指定的那样。我的问题是,当我单击表单中的“提交”按钮时,数据被发送到数组,但随后立即从数组中消失。在js文件本身中运行“addBookToLibrary”函数效果很好,但是通过
onclick
运行它是有问题的

我包括了HTML和js

非常感谢您的帮助,因为我不明白为什么在js文件中调用该函数时该函数有效,而在通过HTML
onclick
方法调用时该函数无效

让myLibrary=[]
const table=document.querySelector(#libraryTable)
//构建图书原型
功能书(标题、作者){
this.title=标题;
this.author=作者;
}
//创建新书本并将其推送到库中
功能addBookToLibrary(标题、作者){
let newBook=新书(书名、作者)
myLibrary.push(新书本)
render()
}
//入门书
addBookToLibrary(“霍比特人”、“托尔金”)
addBookToLibrary(“霍比特人”、“托尔金”)
addBookToLibrary(“霍比特人”、“托尔金”)
函数render(){
book=myLibrary[myLibrary.length-1]
table.innerHTML+=`${book.title}${book.author}`
}
addButton=document.querySelector(“提交按钮”)
函数addyWaddy(){
addBookToLibrary(newBookForm[0]。值,newBookForm[1]。值);
};

在这里添加书籍

书在这里 标题 作者
表单上的操作仍在尝试转到其他页面。您需要执行操作
action=“#”
,然后您应该可以添加任意数量的内容

从提交按钮中删除“onclick”属性。它是一个提交按钮,因此您必须在“提交”事件上添加一个侦听器,如下所示:

<form action="#" id="newBookForm" onsubmit="return addyWaddy()">


你的JavaScript在哪里?你在做什么来阻止表单提交和重新加载页面,这是预期的行为?JavaScript可能需要滚动到,但我已经包含了它。我不知道提交时重新加载的表单。我需要进一步调查他们,看看如何阻止这种情况。或者仅仅用一个运行该功能的常规按钮替换表单提交就可以了?这是否回答了您的问题?