2011-09-09 20 views
0

私は動的にHTMLフォームを生成するAJAX呼び出しを持っています。このフォームには、入力、選択、テキストエリア、チェックボックスなどの多数の要素が含まれています。動的に生成されたフォームをAJAXに提出するにはどうすればよいですか?

このフォームのすべてのフィールドを取得してAJAXスクリプトに送信するにはjavascript(jquery available)を記述する必要があります。私はそこに何があるのか​​、何のフィールドがあるのか​​(基本的な考え方のみ)は分かりません。

どのようにすればいいですか?

var data = $('#ajaxform').serialize(); 
var action = $('#ajaxform').attr('action'); 
$.post(action, data, function(data) { 
... 
}); 

答えて

4

を使用するためのアドオンとして:私のフォーム名は、あなたがjQueryの.serialize()を使用することができます 'ajaxform'

2
var string_ready_to_be_posted = $("#formId").serialize(); 

http://api.jquery.com/serialize/

+0

私はupvoted、しかし@David、IDの使用に注意してください! "name"と "id"の使用には違いがあります:) – ChrisH

+0

@Site correct。あなたがそれが適切だと思うならば、答えにそれを追加してください。 – genesis

+0

@ジェネシスは、アドオンとして答えを加えました! – ChrisH

0

であると言うことができます誰もが言ったように、jQuery serializeを使います。もう1つの注意点は、jQueryのライブメソッドを使用してフォームの送信依頼をオーバーライドすることです。

 
    //Override form submit 
    $("form").live("submit", function (event) { 
     event.preventDefault(); 
     var form = $(this); 
     $.ajax({ 
      url: form.attr('action'), // Get the action URL to send AJAX to 
      type: "POST", 
      data: form.serialize(), // get all form variables 
      success: function(result){ 
       // ... do your AJAX post result 
      } 
     }); 
    }); 

0

var string_ready_to_be_posted = $('form[name="ajaxform"]').serialize(); NAME-セレクタの代わりに、ID

関連する問題