【问题标题】:get the form processing data immediately after form submitting in Javascript, before page refresh在 Javascript 中提交表单后,在页面刷新之前立即获取表单处理数据
【发布时间】:2021-08-20 12:02:22
【问题描述】:

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

url.py:

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

view.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})

index.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但未能捕获消息,没有弹出警报表单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 中提交表单后,在页面刷新之前立即获取表单处理数据?

【问题讨论】:

    标签: javascript jquery django


    【解决方案1】:

    ajaxForm中的类型应该是POST not get

    【讨论】:

    • 我想在 ajax 中获得表单处理的结果,而不是使用 ajax 发布表单
    • 但是你的 msg = 'success' 在 POST 而非 GET 下,你分享的 sn-p 没有 GET
    • POST是表单提交,提交表单后,我想在javascript中实时获取表单处理结果(“success”或“fail”),所以不能post获取“success” " javascript 中的消息
    • “表单处理的结果”是什么意思,表单需要处理才能得到结果,根据你的编码,这应该是POST而不是GET。
    猜你喜欢
    • 2013-09-21
    • 1970-01-01
    • 2012-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多