Javascript e、 preventDefault()与bootbox和jQuery.post()一起使用时不起作用
我想要达到的目标是什么? 我有一个由JS控制的div,当单击菜单项时,它的高度会改变。因此,当单击菜单项时,会出现一个div,当再次单击时,它会消失 在这个div中,我有一个表单,当表单提交时,将显示一条消息,询问用户是否确定要提交表单。如果他们回答是,则提交表格并发送电子邮件 如果用户说否,消息将消失,允许用户进行更改 问题 提交表单时,页面因帖子而刷新。从而使div消失 我的解决方案? 当用户说是时,将使用jQuery.post()和e.preventDefault()发布表单 这应该是Javascript e、 preventDefault()与bootbox和jQuery.post()一起使用时不起作用,javascript,jquery,html,forms,bootbox,Javascript,Jquery,Html,Forms,Bootbox,我想要达到的目标是什么? 我有一个由JS控制的div,当单击菜单项时,它的高度会改变。因此,当单击菜单项时,会出现一个div,当再次单击时,它会消失 在这个div中,我有一个表单,当表单提交时,将显示一条消息,询问用户是否确定要提交表单。如果他们回答是,则提交表格并发送电子邮件 如果用户说否,消息将消失,允许用户进行更改 问题 提交表单时,页面因帖子而刷新。从而使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
}
});
}
});
});
发生了什么事?
当用户对消息说“是”时,表单仍在发布,导致刷新 请输入
返回false代码>在e.preventDefault()之后代码>
我想你可以把返回false
就在$.post
调用之后(而不是在e.preventDefault()
(这是引导框等待post结果)和返回false;
就在引导框之后。确认
子句(对于不提交的表单)。
您可以调用success方法a bootbox.hideAll在post后关闭bootbox。您是否在e.preventDefault()之后通过return false
尝试过它
;是,它只是在选择答案时阻止引导框消息消失。对于误解表示歉意,它不起作用。如果我在两个e之后都输入return false,它将阻止警报工作。如果我在第二个e之后输入return,它将阻止警报在“Yes”之后消失已单击。否您需要在提交函数结束时返回false,以防止单击通过。即,就在最后的}之前)代码>@BobVale按照你的建议做似乎不能解决我的问题。这似乎是错误的;没有效果。我在想,也许div消失是使用bootbox的副作用。它不起作用,只会引起其他不必要的副作用。
e.preventDefault();
return false;