2014-10-16 77 views
-1

我做了一个简单的表单,并希望使用jQuery功能new FormData()发布数据。对我来说,每件事似乎都很好,但是当我在console.log中显示变量data时,那么我得到FormData { append=append()}作为输出。表单数据显示空对象

我的代码是:

<form action="" enctype="multipart/form-data" method="post" name="edit_user" id="edit_user"> 
    <input type="text" name="Fname" > 
    <input type="file" name="image"> 
    <input type="submit" value="submit"> 
</form> 

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script> 
<script type="text/javascript" charset="utf-8"> 
    $(document).ready(function() { 
     $('#edit_user').submit(function(event) { 
      event.preventDefault(); 
      var formdata = new FormData(this); 
      console.log(formdata); 
     }); 
+0

'FORMDATA()'不是'jQuery的API方法/ function'。 https://developer.mozilla.org/zh-CN/docs/Web/Guide/Using_FormData_Objects – melancia 2014-10-16 12:10:28

+0

问题重新标记正确。 – melancia 2014-10-16 12:11:50

+0

如果你仍然在'jQuery'后,这可能会帮助你:http://api.jquery.com/serialize/ – melancia 2014-10-16 12:12:53

回答

3

你的代码(包括下面)工作正常。这是FormData应该如何工作。可以使用XHR或$.ajax(请参阅this question for tying it to jQuery)发布数据,但它不会为您序列化为字符串。只有在发出XHR请求时才会将其转换为适当的格式。

没有办法在控制台中看到FormData对象中的数据而没有发出XHR请求。

$(document).ready(function() { 
 
    $('#edit_user').submit(function(event) { 
 
    event.preventDefault(); 
 
    //enter code here 
 
    var formdata = new FormData(this); 
 

 
    console.log(formdata); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form action="" enctype="multipart/form-data" method="post" name="edit_user" id="edit_user"> 
 
    <input type="text" name="Fname"> 
 
    <input type="file" name="image"> 
 
    <input type="submit" value="submit"> 
 
</form>

+0

谢谢你的兄弟保存我...我正在调试这个2小时 – 2014-10-16 12:39:19

0

您可以通过使用FORMDATA获取功能,这样得到的数据:

console.log(formdata.get('Fname'));