我要实现的目标?
我有一个由JS控制的DIV,当单击菜单项时,其高度更改了。因此,当单击菜单项时,出现DIV,当它再次单击时,它消失了。
在此Div I中有一个表格,当提交表格时,一条消息将显示询问用户是否确定要提交表单。如果他们回答是,表格提交并发送了一封电子邮件。
如果用户说没有消息会消失,则用户可以进行更改。
问题
提交表格时,由于帖子而引起的页面刷新。从而使DIV消失了。
我的解决方案?
当用户说是时,该表格是使用jquery.post()以及e.preventdefault()。
发布的。这应该应该
- 阻止表格令人耳目
- 发布表单数据
代码
$('#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;