Javascript Ajax请求每隔一段时间才工作一次

Javascript Ajax请求每隔一段时间才工作一次,javascript,jquery,Javascript,Jquery,我刚刚开始使用ajax…尝试通过post请求使用ajax提交表单。出于某种原因,我编写的代码每隔一段时间就完全有效。当我第一次提交表单时,它是通过ajax处理的。当我再次提交时,javascript不会被调用,表单是通过正常的post请求提交的。当我第三次提交时,ajax再次工作。等等你知道如何解决这个问题,让ajax每次都能正常工作吗 function contact_submit() { alert('starting'); var data = { name: $('#id_n

我刚刚开始使用ajax…尝试通过post请求使用ajax提交表单。出于某种原因,我编写的代码每隔一段时间就完全有效。当我第一次提交表单时,它是通过ajax处理的。当我再次提交时,javascript不会被调用,表单是通过正常的post请求提交的。当我第三次提交时,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);
});

如果将事件附加到
文档
级别,则无法使用
return false
取消该事件。当它传播到
文档
级别时,表单已提交。您应该专门将事件附加到表单上(如您所注释的),并在
load()
调用成功时重新附加它。

使用解决方法解决了它。以前,我每次使用ajax请求都会重新生成submit按钮,我认为事件处理程序没有附加到重新生成的submit元素。我将submit移到ajax请求的目标之外,它每次都开始工作。

使用变通方法解决了这个问题。以前,我每次使用ajax请求都会重新生成submit按钮,我认为事件处理程序没有附加到重新生成的submit元素。我将提交移到ajax请求的目标之外,并且每次都开始工作。您应该在这个线程中包含您自己的答案,并将其标记为正确答案。对未来的读者有用是的,我必须等待8个小时,因为我的代表性较低。如果可以,我会这样做。我尝试过,但仍然得到相同的交替行为(尽管我从代码示例中删除了该行为)@vasek1这可能意味着由于代码中的异常,第二次附加事件失败。