我有一个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时提交。我不确定我错过了哪里。
答案 0 :(得分:2)
直到答案,通常的做法是初始化submit()
处理程序。这可以通过在页面准备好时进行设置来完成。目前你有它以常规方式提交表单,它甚至没有注册你的JavaScript。要解决它,你可以写:
$(document).ready(function() {
$('#ajax_form').submit(fun // the rest of your code here.
});
答案 1 :(得分:1)
如果jQuery事件处理程序中存在错误,它们将无声地失败。检查显而易见的事情,比如缺少分号等。确保事件处理程序中的所有内容都有效,并且它应该可以正常工作。