Ajax表单提交第二次无效

时间:2018-02-20 14:41:44

标签: jquery ajax django

我正在使用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>

0 个答案:

没有答案