2014-10-16 55 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'));