私はちょうどajaxで始まっています...投稿リクエストを通じてajaxでフォームを送信しようとしています。何らかの理由で、私が書いたコードはまったく別の時間に動作します。私が最初にフォームを提出すると、それはajaxによって処理されます。私が再び提出すると、javascriptは呼び出されず、フォームは通常の投稿要求と共に提出されます。 3回目に提出すると、Ajaxが再び動作します。等々。毎回AJAXを動作させるためにこれを修正する方法はありますか?Ajaxリクエストは他のすべての時間だけ動作します
function contact_submit() {
alert('starting');
var data = {
name: $('#id_name').val(),
email: $('#id_email').val(),
title: $('#id_title').val(),
message: $('#id_message').val(),
csrfmiddlewaretoken: $('input[name="csrfmiddlewaretoken"]').val()
};
$('#contact_form').load("/contact/?ajax", data, function(response, status, xhr) {
if (status == "error") {
var msg = "Sorry but there was an error: ";
$("#contact_form").html(msg + xhr.status + " " + xhr.statusText);
}
});
alert('load was performed');
return false;
}
$(document).ready(function() {
//*$(document).submit(contact_submit);
$(document).on("submit","form",contact_submit);
});
解決方法を使用して解決しました。以前は、私はajaxリクエストで毎回submitボタンを再生成していましたが、イベントハンドラが再生成されたsubmit要素にアタッチされていなかったと思います。私はAjaxリクエストの対象外に提出を移動し、毎回作業を開始しました。 – vasek1
あなた自身の答えをこのスレッドに入れ、正しいものとしてマークする必要があります。将来の読者に役立ちます – rkw
ええ、私は低所得者がいるので8時間待たなければなりません。私ができる時にやります。 – vasek1