form表单submit提交后台无反应、前端不报错

昨天下午一直纠结一个问题,表单无法提交,代码是这样的:

var deleteDialog = $("#dialog-confirm-delete").show().dialog({
            resizable : true,
            closable: true, 
            draggable: true, 
            width: 280, 
            height : 150,
            modal : true,
            buttons:[{
                text:'确认删除',
                handler:function(){
                var deleteAction = getAction("structure/deleteMainDanElement.do");
                $("#form_delete").attr('action',deleteAction);
                $("#form_delete").submit();
                refresh();//注意看这里       
            }
            },{
                text:'取消',
                handler:function(){
                    $('#dialog-confirm-delete').dialog('close');
                }
            }]          
        });
        deleteDialog.dialog("open");

//这里是refresh方法
function refresh(){
    //刷新页面
    location.reload()

}

html里面是这样的:

<div id="dialog-confirm-delete"  title="删除确认"  class = "easyui-dialog"  style="display:none;">
            <form id="form_delete"  method="post">
                    <input type="hidden" id="ELEMENT_ID2" name="ELEMENT_ID">
                    <input type="hidden" id="TAG_ID2" name="TAG_ID">
                </form>
                <p>
                    该元素将被永久删除,并且无法恢复。您确定吗?
                </p>

        </div>

路径确认没问题,别人看代码也看不出什么问题,打开F12一直查一直查,真查不到问题,network没有东西、console也没有东西,后台打的断点又跳不进去。

直到今天有点事情耽搁了,前端断点停了几分钟,意外发现跳转进去了。这才醒悟过来,这是前端刷新太快了,还没来得及请求就已经刷新了。找了一会儿,没有找到form的submit回调方法,后选用ajax提交。修改的代码是这样的:
修改后的代码

这个还是提醒了我,前端调试的时候务必注意异步同步的问题。这样导致调试了一下午,确实是浪费时间了。

``` {% extends 'blog_base.html' %} {% load staticfiles %} {% block main %} <h1 class="page-title">Contact</h1> <article class="post"> <div class="entry-content clearfix"> <form action="{% url 'contacts:post_contact'%}" method="post" class="contact-form"> <div class="row"> <div class="col-md-6 col-md-offset-3"> {% csrf_token %} <input type="text" name="name" value="{{form.name}}" placeholder="Name" required> <input type="email" name="email" value="{{form.email}}" placeholder="Email" required> <input type="text" name="subject" value="{{form.subject}}" placeholder="Subject" required> <textarea name="text" value="{{form.text}}" placeholder="Your Message" required></textarea> <input type="submit" value="Submit" class="btn-send btn-5 btn-5b ion-ios-paperplane" /> </div> </div> <!-- row --> </form> </div> </article> {% endblock main %} ``` 这是前段静态页面,后端是 ``` def post_contact(request): # HTTP 请求有 get 和 post 两种,一般用户通过表单提交数据都是通过 post 请求, # 因此只有当用户的请求为 post 时才需要处理表单数据。 if request.method == 'POST': # 用户提交的数据存在 request.POST 中,这是一个类字典对象。 # 我们利用这些数据构造了 CommentForm 的实例,这样 Django 的表单就生成了。 form = ContactForm(request.POST) if form.is_valid(): contact = form.save(commit=False) contact.save() # 然后重定向到 get_absolute_url 方法返回的 URL。 return render(request, 'contacts/contact.html') # 不是 post 请求,说明用户没有提交数据,重定向到文章详情页。 return render(request, 'contacts/contact.html', {'form': form}) ``` 如何修改才能获取到前段的提交的值,并存入库中,测试了好久,dug显示页面提交成功 200,但是后端断点并未访问,感谢各位大神帮助!
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页