我在表格数据之外有一个按钮。当我提交表单时,我可以获得序列化值但不是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>
答案 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]))