我正在使用Django,这里是get和post方法。刷新页面后,在第一个表单提交时,调用Ajax jquery。成功时,它返回json.msg,这是另一个在下面的post调用中给出的表单。当我尝试提交此渲染表单时,不会调用ajax,但它会直接调用django POST方法。
关于ajax的成功,我尝试了'$('#school')。unbind('submit')。submit();'。这样,它确保在每个表单提交上调用ajax。但是,上面的方法,刷新了我不想要的整个页面。我可以知道如何在没有页面刷新的情况下取消绑定之前的提交,或者在每次提交时调用Ajax(而不是直接django post)。
def get(self, request):
...
...
return render(request, self.template_name, {'form':next_form_obj})
def post(self, request):
...
t = get_template('school/fun_activities.html')
msg = t.render({'form': next_form_obj}, request)
return JsonResponse({'msg': msg})
这是Ajax调用。
$('#school').on('submit', function(event){
$.ajax({
type: 'POST',
url: '/school/fun/',
data: $("#school").serialize(),
success: function (json) {
event.preventDefault();
$('#msg-list').append(json.msg); #json.msg is another form
},
error: function(data) {
$("#msg-list-div").html("Something went wrong!");
}
});
return false;
});
HTML:
<form id = "school" method="post" action=".">
<input type="submit" value="Next" />
</form>