0

jquery .load() と setTimeout() を使用して更新することにより、(同じ Web サイトの) 別の PHP ページから div をロードするページに div があります。ただし、この div には、ランダムな名前と ID を持つ 2 つのラジオ ボタンを持つフォームが含まれています。送信ボタンが押された後、ページは他のオプションを含むフォーム ページにリダイレクトされます。私がやりたいことは、デフォルトのフォームページにリダイレクトせずにフォームを送信することです。

psフォームを含むdivは送信後に「消え」、他のオプションを持つ別のdivが表示されます。目的のdivから消えてほしいだけです。ソースページを制御できず、そこで何も変更できません。

<div id="destinationdiv">
//source form that doesn't have id goes here
</div>
4

2 に答える 2

1

送信ハンドラーは、ajax が読み込まれるまで存在しませんが、ページの読み込み時にフォームに委任できます。フォームには識別子がないため、その親要素とフォーム タグをセレクターとして使用します。

http://api.jquery.com/on/

$(document).on('submit', '#destinationdiv form', function() { /* "this" will be the form element*/


    /* serialize all fields for ajax submittal*/
    var data = $(this).serialize();

    /* ajax post data */
    $.post(url, data, function(data) { 
       /* do something with return data, or local html on success here*/
    });

    /* prevent browser default submit*/

    return false;
})
于 2012-06-23T09:27:49.850 に答える
0

.serialize()フォームをシリアル化し (JQuery の を参照)、AJAX 経由で ($.get()またはを使用して) 送信することで、独自の「送信」を行うことができるかもしれません$.post

$('#myform').submit(function() {

  $.post("pageThatUsesTheFormData.php", $(this).serialize();

  return false;
});

(フォームデータを使用するphpページだと思いますが、ASP.NETでもかまいません)。

この方法では、一般的な HTML の意味のようにフォームが実際に「送信」されることはありませんが (これは が原因ですreturn false;)、データを処理するページにデータを送信することはできます。

$.get("url?"+$(this).serialize());POST の代わりに GET メソッドを使用する必要がある場合に使用します。

于 2012-06-23T09:24:34.790 に答える