首页 > 解决方案 > 在 Javascript 中提交表单后,在页面刷新之前立即获取表单处理数据

问题描述

我使用 Django 开发了一个网络应用程序。表单提交后,我想在页面刷新之前立即在视图功能中获取表单处理结果(在我的情况下为 msg)。

网址.py:

path('index/', views.form_process, name='index'),

视图.py

 def form_process(request):
     if request.method == 'POST':
                Form_instance = Form(data=request.POST)
                if Form_instance.is_valid():
                        msg="success"
                else:
                        msg="fail"               

                return render(request, 'index.html', context={'msg': msg})

索引.html

<form id="myform">
...

 </form>
  <button class="button" onclick="myFunction()" id="submit">submit</button>

 

<script>
function myFunction() {
...
$("#myform").submit();

    if ('{{msg}}'.includes('success'))
    {alert("success");
     }

}
</script>

现在消息总是在页面刷新后发送到 js。我的老板想让它在表单提交后,页面刷新之前立即弹出。如何在 Javascript 中提交表单后,在页面刷新之前立即在视图函数中生成 msg。

我尝试了 ajax 但未能捕获 msg,没有弹出警报表单 ajax:

$('#myForm').ajaxForm({
        url : '/index/',    //I also tried 127.0.0.1:8000/index, also no pop up
        type: 'get',
        success : function (response) {
            alert("The server says: " + response);
        }
    })
;

如何在 Javascript 中提交表单后,在页面刷新之前立即获取表单处理数据?

标签: javascriptjquerydjango

解决方案


ajaxForm 中的类型应该是 POST not get


推荐阅读