5

フォームがあります。このフォームは、POST を介して iframe に送信されます。これにより、リクエストが処理され、結果に応じて、送信の有効性に従って親のコンテンツを変更する JavaScript が実行されます。

さて、私はこの手順が好きではありません。複数のフォームを同時に送信できるようにしたいのですが、非表示の iframe は 1 つしかありません。そこで、フォーム送信ごとに個別のリクエストを作成して、AJAX でそれを行いたいと思います。

しかし、私のフォームは複雑です。配列に変数を追加するチェックボックス、クリックされてクリック座標を送信する必要がある画像、およびそのような複雑なもので構成されています-これが、各入力の値をそれぞれ計算してポストパラメーターに追加する代わりに、文字列 (ちなみに、そのように配列を作成する方法がわかりません)、送信コンテンツをインターセプトし、これらすべてのパラメーターを含む投稿文字列として保存してから、この文字列を AJAX に使用することをお勧めします。 POST リクエスト。

この関数でやりたいこと:

$('#myForm').submit(function(event){

    // process the submission, e. g. event.getContent().toPostString();

    // create the AJAX request and send it and attach listeners (I know how to do this line ;)

    return false; // I don't want the form submitted (to the iframe)

});

前もって感謝します!

4

2 に答える 2

7

iframeを使用せず、jQueryのajaxメソッドを使用してください:(post()以下の例で使用しました)

$('#myForm').submit(function(event){

             //url          //post data
    $.post(this.action, $(this).serialize(), function(returnData){
           //do something with returnData
    })

    return false; //do not submit form the normal way

});

次に例を示します。http://jsfiddle.net/maniator/Y6r8E/
フォームに何かを入力して送信します。

于 2011-06-15T19:27:26.123 に答える
1

jQuery のserialize()関数はフォーム データを収集し、.ajax() または .post() を介して簡単にフォームを送信できるようにします。

于 2011-06-15T19:30:25.497 に答える