Javascript 这些FormData构造函数之间有什么区别?
我已经在PHP或JavaScript项目。然而,在这个项目中,我面临一个问题。我不知道这件事:Javascript 这些FormData构造函数之间有什么区别?,javascript,jquery,Javascript,Jquery,我已经在PHP或JavaScript项目。然而,在这个项目中,我面临一个问题。我不知道这件事: var formData = new FormData(); // and: var form = getElementById('myform'); var formData = new FormData(form); 这段代码会给我不同的结果吗?创建一个新的FormData()对象将实例化一个空的FormData对象,您可以手动填充相关信息。例如,您可以执行以下操作: let foo
var formData = new FormData();
// and:
var form = getElementById('myform');
var formData = new FormData(form);
这段代码会给我不同的结果吗?创建一个新的
FormData()
对象将实例化一个空的FormData对象,您可以手动填充相关信息。例如,您可以执行以下操作:
let foo = new FormData();
let bar = document.querySelector('input')
// Add bar to form data
foo.append(bar.name, bar.value);
这允许您仅在表单帖子中包含您选择的数据
如果将表单作为参数传递给FormData
(如上所述,使用newformdata(form)
),则FormData
对象将预填充来自所提供参数的所有数据(例如form
)。这意味着,如果您希望表单中的所有内容都被发布,只需一次性传递即可
在这两种情况下,您都可以使用
append()
和delete()
向FormData
对象添加/删除附加信息。第一种方法返回一个空的FormData对象。第二个为FormData构造函数提供了一个对表单
元素的引用,因此它将被该表单中的数据填充。有关此操作的更多信息,请参阅。代码是否存在特定问题?未捕获的TypeError:构造“FormData”失败:参数1不是“HTMLFormElement”类型。在HTMLImageElement.onclick的addImageOfProject(test.php?index=0:2763)中,我在控制台中得到了这个错误。当我尝试这样做时:var form=getElementById('myform');var formData=新formData(表格)<代码>getElementById('myform')代码>->document.getElementById('myform')对不起,这是唯一的输入错误,实际上我也在尝试“document.getElementById('myform')”。但在这种情况下,在DOM中找不到表单
元素时,错误也是一样的。要么是输入错误,要么是多个元素具有相同的id
,要么是在加载DOM之前运行JS。我们需要一个更完整的代码示例来诊断未捕获的类型错误:构造“FormData”失败:参数1不是“HTMLFormElement”类型。在HTMLImageElement.onclick的addImageOfProject(test.php?index=0:2763)中,我在控制台中得到了这个错误。当我尝试这样做时:var form=getElementById('myform');var formData=新formData(表格);您有一个输入错误-将getElementById('myform')
更改为document.getElementById('myform')
-您需要一个根引用进行搜索,以根据其ID查找元素-在这种情况下,document
很抱歉,这只是键入错误,实际上我还在尝试“document.getElementById('myform')”。但错误是一样的。不幸的是,问题不是来自您共享的代码片段。我创建了一个小提琴,它没有显示错误: