我有一个表单数据之外的按钮。当我提交表单时,我可以获得序列化值,但不能获得FormData. 我怎样才能得到FormData?
function submitForm() {
console.log($('#form1').serialize());
console.log(new FormData(document.getElementById('form1')));
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form id="form1" name="form1">
<input type="firstname" value="First Name" name="firstname">
<input type="lastname" value="Last Name" name="lastname">
</form>
<button onclick="submitForm()">Submit</button>Run Code Online (Sandbox Code Playgroud)
从文档...
句法
Run Code Online (Sandbox Code Playgroud)var formData = new FormData(form)参数
表单
一个 HTML<form>元素 — 指定后,FormData对象将使用表单的当前键/值填充,使用每个元素的名称属性作为键及其提交的值。它还将对文件输入内容进行编码。
您正在传递一个jQuery对象,而不是表单元素。相反,尝试
console.log(new FormData(document.getElementById('form1'))) // by id
Run Code Online (Sandbox Code Playgroud)
或者
console.log(new FormData(document.forms.form1)) // by name
Run Code Online (Sandbox Code Playgroud)
或者如果你仍然喜欢 jQuery
console.log(new FormData($('#form1')[0]))
Run Code Online (Sandbox Code Playgroud)