FormData基于表单ID或名称

时间:2017-12-13 01:42:51

标签: javascript jquery

我在表格数据之外有一个按钮。当我提交表单时,我可以获得序列化值但不是FormData。我怎样才能获得FormData?

function submitForm() {
  console.log($('#form1').serialize());
  console.log(new FormData(document.getElementById('form1')));
}
<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>

1 个答案:

答案 0 :(得分:2)

来自documentation ...

  

语法

var formData = new FormData(form)  
     

参数

     

<强>形式
  HTML <form>元素 - 在指定时,FormData对象将使用表单的当前键/值填充,使用键的每个元素的name属性及其提交的值的值。它还将编码文件输入内容。

您正在传递jQuery对象,而不是表单元素。相反,尝试

console.log(new FormData(document.getElementById('form1'))) // by id

console.log(new FormData(document.forms.form1)) // by name

或者你还是喜欢jQuery

console.log(new FormData($('#form1')[0]))