jquery - 提交表单而不刷新/重定向当前页面(Python(Django)+ jQuery + Ajax)

标签 jquery python ajax django

有没有使用 Python 和 jQuery Ajax 提交表单而不刷新当前页面的方法?我希望最终结果类似于 Facebook 评论的工作方式。

我目前正在使用 jQuery Form 来执行 Ajax。但是,它并没有给我想要的用户体验,因为:

  1. 使用 jQuery Form 提交后,地址栏上的 URL 刷新为我提交的表单。

  2. 确实刷新了页面。我特别不喜欢它,假设我在页面底部向下滚动到最大值。提交表单后刷新页面,焦点跳转到页面顶部。

我希望我已经阐明了我的观点。我需要像 Facebook 评论系统这样的东西。有人发表评论,然后评论就被提交了,根本没有刷新页面。

编辑

jQuery 代码:

$('#review_submit').submit(function() { 
        var options = {};           
        $(this).ajaxSubmit(options);
        return false; 
});



    $('[name=submit_review_btn]').click(function(){                      
        $('#review_submit').submit();
    });

因此,处理提交的 python 代码需要从其服务器端代码重定向页面,因此将页面重定向到此 URL,“main_URL.com”

显示 jQuery 代码后,结果为:

  1. URL 出现在地址栏上:main_URL.com/form_action_url <--- 这是我设置的用于提交表单的表单操作。

  2. 页面重定向到我在服务器端设置的页面。

我对这种 Ajax 体验感到困惑。

最佳答案

您可以通过使用 jquery 的 ajaxPost 而不是 jquery 的表单来处理这个问题。这将允许您 .serialize() 表单(以获取参数)并能够返回到 JS 函数以在“提交表单”后执行您想要的操作。查看jQuery.post()

jsFiddle

这不会刷新页面,因为发布是通过 AJAX 调用进行的。它允许您在帖子通过后运行一个函数并执行您想要的操作(如果帖子返回数据,它将在此处可用...如果您想在此成功后执行另一个 GET 或 POST,可以在这里完成……等等等等)

关于jquery - 提交表单而不刷新/重定向当前页面(Python(Django)+ jQuery + Ajax),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7945848/

相关文章:

jquery - 使用 jquery 中断并重新启动 setTimeOut 事件序列?

python - Pandas 重命名操作更改两列而不是一列上的列名称

javascript - 带有自己的搜索表单的数据表

javascript - 异步模板加载 - 如何仅加载一次?

c# - 如何将 AjaxControlToolkit 添加到 Visual Studio 2013 web 表单模板?

jquery - Twitter Bootstraps 选项卡功能的自定义动画

php - dropzone.js 图片上传接受的MimeTypes

javascript - 如何阻止 HTTP 请求?

python - python的ord()函数的对立面是什么?

python - 循环修改 NumPy 数组