私はいくつかのhtmlフォームを持つページを持っています。以下はajaxコールを介してフォームを送信するためのjqueryコードです。内容divが提出されます。フォームがajaxを介してリロードされた後でも起動します。ハンドラ関数にフォームデータを渡す方法がわかりません。 (本).serializeArray()は、動作していないFORMDATAフォームfiledsから値を取得していないJQuery Ajaxフォーム.on( "submit"、
$.ajaxSetup({
url: "ajax.php",
type: 'POST',
contentType: "application/json; charset=utf-8",
datatype: 'json',
cache: false,
timeout : 5000
});
$("#content").on("submit", function(e) {
e.preventDefault();
var formData = $(this).serializeArray();
$.ajax({
data: formData,
success: function(jsonData) {
htmlData = jQuery.parseJSON(jsonData);
$.each(htmlData, function(id, data){
$("#"+id).html(data);
});
}
});
};
UPDATE:
01。私が変更した場合は
$("#content").on("submit", function(e)
$("#content").on("submit", "form", function(e)
にフォームデータをシリアライズすると、意図したようにAjaxの機能が動作します。新しい問題は、フォームが完了せず、(ajaxを介して)コンテンツ部門にリロードされた場合、サブミットイベントはもはやその関数をトリガーしなくなるということです。以前のバージョンのjqueryで.live()が機能するように.on()を設定しようとしていました。これは、ajaxのリロード後にsubmitイベントを再バインドします。この場合、.on()は再バインドされません。希望はある意味がある!
私はあなたの説明から、間違って何が起こっているか理解していない、もう一度あなたの問題を説明してください。 –
サーバーまたはクライアント(javascript/jquery)のデータにアクセスする方法を意味しますか? – Chibuzo
$(これ)。シリアル化配列();フォームデータを取得していません。したがって、formDataには何もありません。 –