Ajax请求只在每隔一次工作
Ajax request working only every other time
我刚开始使用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);
});
如果您将事件附加到document
级别,则无法使用return false
取消事件。当它传播到document
级别时,表单已经提交了。您应该专门将事件附加到表单上(正如您已经注释的那样),并在load()
调用的成功事件上再次重新附加它。
使用变通方法解决了它。以前,我每次都用ajax请求重新生成提交按钮,而且我认为事件处理程序没有附加到重新生成的提交元素。我将提交移到ajax请求的目标之外,并且每次都开始工作。
相关文章:
- Jquery FadeIn FadeOut 只工作一次
- jQuery滚动功能只工作一次
- iOS鼠标中心绑定只工作一次
- mongoose.js Model.remove在循环中只能工作一次
- 复选框一次选中一个不在gridview中工作
- Regex拆分-工作一次
- EventListener只能工作一次
- jQuery animate只在单击时工作一次
- data th JS每页只工作一次
- Jquery选择选项并获取只工作一次的更改值(页面加载时)
- remove仅每隔一次进行儿童工作
- CSS 类在验证时只工作一次
- Chrome扩展程序:浏览器操作单击按钮工作一次
- 单击仅工作一次
- MVC 分部视图中的 JQuery UI 自动完成功能只能工作一次
- Yelp API、OAuth和Angular与JSONP只工作一次
- 为什么这个脚本只工作一次?只替换元素一次,然后再也不替换
- 滚动时加载更多 滚动速度时一次工作两次
- 为什么一个ng应用程序一次工作
- Ajax请求只在每隔一次工作