FormData jquery没有';行不通 varf='1\ \ \ 输入名称:\ \ \ \ 输入帐号:\ \ \ \ 上载文件:\ \ \ \ \ '; 文件。编写(f); var test=document.getElementById('myForm'); 控制台日志(测试); var form_data=新FormData(测试);

FormData jquery没有';行不通 varf='1\ \ \ 输入名称:\ \ \ \ 输入帐号:\ \ \ \ 上载文件:\ \ \ \ \ '; 文件。编写(f); var test=document.getElementById('myForm'); 控制台日志(测试); var form_data=新FormData(测试);,jquery,forms,Jquery,Forms,我尝试使用FormData从所有字段收集所有数据。 为什么,为什么它不起作用? Formdata为空…您可以使用jQuery方法.serializeArray()为此,非常简单,例如: var f = '\ <form id="myForm" name="myForm">\ <div>\ <label for="username">Enter name:</label>\ <input type="text

我尝试使用FormData从所有字段收集所有数据。 为什么,为什么它不起作用?
Formdata为空…

您可以使用jQuery方法
.serializeArray()
为此,非常简单,例如:

var f = '\
  <form id="myForm" name="myForm">\
    <div>\
      <label for="username">Enter name:</label>\
      <input type="text" id="username" name="username">\
    </div>\
    <div>\
      <label for="useracc">Enter account number:</label>\
      <input type="text" id="useracc" name="useracc">\
    </div>\
    <div>\
      <label for="userfile">Upload file:</label>\
      <input type="file" id="userfile" name="userfile">\
    </div>\
    <input type="submit" value="Submit!">\
  </form>\
';
document.write(f);

var test = document.getElementById('myForm');
console.log(test);
var form_data = new FormData(test);
通过这种方式,您可以收集除文件之外的所有输入值。要获取文件,可以使用类似
$('#userfile').prop('files')

以下是工作片段:

varf='1\
\
\
输入名称:\
\
\
\
输入帐号:\
\
\
\
上载文件:\
\
\
\
\
';
文件。编写(f);
函数collectData(){
var form_data=$('#myForm').serializeArray();
var file=$('#userfile').prop('files');
表单_data.push(文件);
console.log(form_数据);
}

表单数据是在用户输入数据之前创建的。我已经更新了答案,看起来好像是在玩把戏,检查一下,我的意思是。。。。输入是空的……OP说“我试图从所有字段收集所有数据”。您的解决方案是在表单仍然为空时获取值。使用
type=“button”
value=“Get the form values”
(而不是“submit”…因为它根本没有提交…),这将是一个正确的答案。@louyspatricebesette,是的,但如果要使用
type=“button”
,表单立即提交,我们没有看到
控制台.log
。没有<代码>
未提交<代码>
你好
都有。而且,
你好
没有。@louyspatricebesette,谢谢你的更正,我不知道。我已经更新了答案。
$('form').serializeArray();