Javascript Can';t从现有表单构建FormData对象

Javascript Can';t从现有表单构建FormData对象,javascript,jquery,forms,multipartform-data,form-data,Javascript,Jquery,Forms,Multipartform Data,Form Data,我正在尝试从页面上的表单构建FormData对象。我得到的表单元素如下: var form = document.forms['upload_form']; var fd = new FormData(form); fd.append("username", "Groucho"); 然后我像这样构建FormData对象: var form = document.forms['upload_form']; var fd = new FormData(form); fd.append("u

我正在尝试从页面上的表单构建FormData对象。我得到的表单元素如下:

var form = document.forms['upload_form'];
var fd = new FormData(form);
fd.append("username", "Groucho");
然后我像这样构建FormData对象:

var form = document.forms['upload_form'];
var fd = new FormData(form);
fd.append("username", "Groucho");
由于无法在FormData对象中记录值(如上所述),因此我将FormData发送到“/”,以便在网络检查器中查看其内容。请求有效负载的内容仅为:

------WebKitFormBoundaryKAgAjii8IMLyJFcB--
没有别的了!如果我手动将值添加到表单中,如下所示:

var form = document.forms['upload_form'];
var fd = new FormData(form);
fd.append("username", "Groucho");
它的工作原理是:

------WebKitFormBoundaryZikgEBo7sTzvlndC
Content-Disposition: form-data; name="username"

Groucho
我还尝试过用其他方式选择表单元素,例如使用jQuery:

var form = $(".upload_form");
var fd = new FormData(form[0]);
无论我如何选择表单元素,表单变量中肯定有表单(它不是null或空的),但是用它作为参数构造FormData对象似乎不起作用。有人能帮忙吗

PS我使用的是Chrome 31.0.1650.57。我在Safari 7.0中也尝试过这个方法,结果也一样


另一件事:此表单中的输入嵌套在多个div中。这可能是个问题吗?

发生这种情况是因为我的输入没有设置
name
属性。显然,
new FormData()
$.serialize()
将忽略任何没有名称的输入。

是否在表单存在并已填写后构建表单数据?如果使用纯HTML,表单是否确实提交了任何内容?是的,我在表单存在并填写之后构建FormData。表单不提交纯HTML格式的任何内容,因为这是一个仅使用JavaScript的web应用程序,我只希望使用AJAX提交表单。因此,表单没有操作、方法或提交输入。