Ajaxified表单不重定向

时间:2013-11-21 13:30:48

标签: jquery ajax django

我在这里提出另一个问题:)

在我的项目中,我有一个带有表单的模板:

{% load bootstrap3 %}
{% bootstrap_css %}
{% bootstrap_javascript %}
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script>
<script src="http://malsup.github.com/jquery.form.js"></script>
<script>
    // wait for the DOM to be loaded
    $(document).ready(function() {
        // bind 'myForm' and provide a simple callback function
        $('#productEditForm').ajaxForm(function() {
            alert("Product with id {{ id }} saved.");
        });
    });
</script>

<h1>You're editing Product with ID={{ id }}</h1>
<form enctype="multipart/form-data" method="POST" action="/product_edit/{{ id }}" id="productEditForm">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Submit</button>
</form>

这笔交易是无论是否有脚本实现ajaxForm都可以正常工作 - 正在保存对象的实例。但是当表单被“ajaxified”时,重定向不会发生,尽管它应该发生。我知道JQuery函数preventDefault - 猜测在这种情况下我需要反向工作。

你能提供一些帮助吗?

1 个答案:

答案 0 :(得分:0)

要在ajax请求返回后重定向,您需要使用javascript函数来更改locationwindow的{​​{1}}属性。

类似的东西:

document

在提交表单后,如果成功收到服务器上的ajax响应,则应重定向到'/ product_view / {{id}} /'。如果您愿意,可以将新页面作为参数传递给ajax响应。