e.preventDefault()与bootbox and jquery.post()一起使用时不起作用



我要实现的目标?

我有一个由JS控制的DIV,当单击菜单项时,其高度更改了。因此,当单击菜单项时,出现DIV,当它再次单击时,它消失了。

在此Div I中有一个表格,当提交表格时,一条消息将显示询问用户是否确定要提交表单。如果他们回答是,表格提交并发送了一封电子邮件。

如果用户说没有消息会消失,则用户可以进行更改。

问题

提交表格时,由于帖子而引起的页面刷新。从而使DIV消失了。

我的解决方案?

当用户说是时,该表格是使用jquery.post()以及e.preventdefault()。

发布的。

这应该应该

  1. 阻止表格令人耳目
  2. 发布表单数据

代码

     $('#form1').submit(function(e) {
            var currentForm = this;
            e.preventDefault();
             console.log("prevent default1");//Debug Line
            bootbox.confirm("Are you sure?", function(result) {
                if (result) {
                    e.preventDefault();
                    console.log("prevent default2");//Debug Line
                      $.ajax({
               type: 'POST',
               url: 'indextest2.php',
               data: $("#form1").serialize(),
               error: function () {
                   console.log('Ajax Error');//Debug Line
               }, 
               success: function (response) {
                    console.log('Ajax Success'); //Debug Line
                        }
                    });
                }
            }); 
        }); 

发生了什么事?

当用户对消息"是"说"是"时,该表格仍在发布引起刷新。

我认为您可以在$.post调用之后放置return false;(而不是在e.preventDefault()之后(这是为了等待boot box等待发布结果)和 return false;,而 bootbox.confirm rave(用于表单)不要提交)。您可以致电您的成功方法bootbox.hideall发布后关闭启动箱。

请在e.preventDefault();

之后放置return false;
e.preventDefault();
return false;

最新更新