JQuery Ajax 函数使用相同的数据调用两次

标签 jquery ajax django

我正在构建一个非常简单的页面,它是一个待办事项列表。它通过新待办事项的表单接受用户的输入,将待办事项发布到服务器,然后接收(几乎)相同的数据并将其添加到列表中。然而,每次需要将数据发送到服务器时,$.ajax 函数都会被调用两次。

我的js:

// todo.js
function onload() {
 $( "#datepicker" ).datepicker();
 $( "#todoform" ).submit(function(e){
  e.preventDefault();
  sendtodo();
  return false;
 });
}
function sendtodo() {
 $.ajax({
  url: '/blog/todo/newtodo/',
  type: "POST",
  success: function(data) {
   receivetodo(data);
  },
  data: ({
   body: $('#newbodytextarea').val(),
   title: $('#titleinput').val(),
   dateDue: $('#datepicker').val(),
   time: $('#timepicker').val(),
   category: $('#newcategory').val()}),
});
}
function receivetodo(data) {
 $('#todobody').append(data);
}

以及我的 HTML 的一部分:

<html>
<head>
<title>Todo list</title>
<link href="/django_media/css/todo/todo.style.css" rel="stylesheet" type="text/css">
<link href="/django_media/css/jquery-ui-1.8.5.custom.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="/django_media/js/jquery.js"></script>
<script type="text/javascript" src="/django_media/js/jquery-ui-custom.js"></script>
<script type="text/javascript" src="/django_media/js/todo/todo.js"></script>
<script type="text/javascript">
 $(document).ready(function(){
  onload();
 });
</script>
</head>
<body>
[.................]
</body>
</html>

如果重要的话,我使用 Django 作为我的后端。返回的数据是 <div>包含其他几个<div>标签和一些<h1><p>标签。将接收到的 HTML 附加到页面的代码部分工作正常,只是附加了两次(并且数据实际上在数据库中存在两次)。

我尝试过使用$("#todoform").click(function(e){而不是$("#todoform").submit(function(e){但这并没有改变任何事情。我还确定了onload()仅被调用一次。为什么是sendtodo()执行两次?

如果您需要任何其他代码,我也可以发布。

最佳答案

替换这个:

$( "#todoform" ).submit(function(e)

这样:

$( "#todoform" ).unbind('submit').submit(function(e)

关于JQuery Ajax 函数使用相同的数据调用两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3775368/

相关文章:

javascript - 在 Excel 电子表格中运行 JQuery 地理定位脚本

django admin fieldsets - 添加相关模型的字段

django - NoReverseMatch at/accounts/password/reset/confirm

javascript - 我如何将动态附加值发送到 Controller

javascript - 确认 JavaScript 后运行 php 代码

javascript - 为 Internet Explorer 优化

Python 和 Django OperationalError (2006, 'MySQL server has gone away')

jquery - jquery和jquery-ui在Springsource Tool Suite 2.3.3.M1中不起作用

javascript - 如何在 jQuery 子选择器中使用 event.target?

javascript - 究竟什么会导致 "HIERARCHY_REQUEST_ERR: DOM Exception 3"-Error?