2016-04-22 2 views
0

FormDataでわからないことがあります。FormDataが記入されていません

これは私のコードです:私はChromeで自分のコードをデバッグする場合

<!DOCTYPE html> 
<html> 
<script src="bower_components/jquery/dist/jquery.min.js"></script> 
</script> 
<script> 
$(function() { 
    $('form').on('submit', function (e) { 
      e.preventDefault(); 
      var form_data = new FormData($('form')[0]); 
    }); 
}); 
</script> 

<body> 

<form> 
<input name='a' value='vala'/> 
<input name='b' value='valb'/> 
<input name='c' value='valc'/> 
<input type='submit' value='sub'/> 
</form> 

</body> 
</html> 

、私は自分のフォームの入力名と値で埋めform_dataオブジェクトを持つことが期待されます。

しかし、常に空であるようです。

どこが間違っていますか?あなただけFormData()コンストラクタにform要素を与えることができるよう

form_data empty?

答えて

1

FormDataオブジェクトはちょうど典型的なkey => value原則から動作が異なります。それらは最終的に追加され、提出されることを意図されており、アクセス/変更されることはあまりありません。

ChromeとFirefoxは、FormDataからの読み取りをサポートしているようです。ここで参照してくださいhttps://developer.mozilla.org/en-US/docs/Web/API/FormData/getAll

0

あなたは、すべてのフォームフィールドをループする必要はありません。これを試してみてください:

$('form').on('submit', function (e) { 
     e.preventDefault(); 
     var form_data = new FormData($('form')[0]); 
     // ajax here... 
}); 
+0

私は、var form_data = new FormData($( 'form')[0]);の後にポイントブレークでコードをデバッグすると、オブジェクトはまだ空です。私はjQuery 2.1を使用します – kiks73

+1

検査を通じてFormDataオブジェクト内のデータを見ることはできません。あなたがAJAXリクエストでそれを送ると、あなたのサーバーサイドのコードで送られた値が見えるはずです –

関連する問題