来自django模板的Ajax调用

时间:2012-01-05 15:06:57

标签: django jquery django-templates django-views

我有一个django模板,它扩展了基本模板,该模板具有在其中加载jquery的代码。这个模板有一个简单的文本框,我想通过ajax获取对象。

{% extends 'base.html' %}
{% block content %}

<form id="ajaxform">
    <input type="text" name="first_name" id="name" />
    <input type="submit" value="Submit" />
</form>

<div id="dataDiv">

</div>

<script>
    $('#ajaxform').submit(function(){
        console.log('Form submitted');
        $.get('{% url get_ajax_data %}', $(this).serialize(),function(data){
            $('#dataDiv').text(data);

        })
        return false;
    });

</script>
{% endblock %}

在这个模板中,我尝试对get_ajax_data url进行ajax调用,在相应的视图中,我只是将文本作为return HttpResponse('Ajax respose')返回。但这似乎不起作用,表单在我返回false时提交。我不确定我错过了哪里。

2 个答案:

答案 0 :(得分:2)

直到答案,通常的做法是初始化submit()处理程序。这可以通过在页面准备好时进行设置来完成。目前你有它以常规方式提交表单,它甚至没有注册你的JavaScript。要解决它,你可以写:

$(document).ready(function() {
   $('#ajax_form').submit(fun // the rest of your code here.
});

答案 1 :(得分:1)

如果jQuery事件处理程序中存在错误,它们将无声地失败。检查显而易见的事情,比如缺少分号等。确保事件处理程序中的所有内容都有效,并且它应该可以正常工作。