【发布时间】:2018-01-18 09:42:35
【问题描述】:
我有数据提交表单,我使用 ajax post 提交,成功时我想要一个消息框来显示成功,它会这样做但只会在屏幕上停留一秒钟并加载页面默认值。在用户单击确定之前,如何防止加载页面默认值?这适用于默认的 javascript 警报框
function sendToController()
{
$.ajax({
type: "POST",
url: myUrl,
contentType: "application/json; charset=utf-8",
datatype: "JSON",
data: JSON.stringify({ methodParam: arrayDetails }),
success: function (result) {
bootbox.confirm("This is the default confirm!",
function(result) {
console.log('This was logged in the callback: ' + result);
});
},
error: function () {
alert(test);
}
});
}
event.preventDefault();
});
【问题讨论】:
-
这里定义了
event。你已经使用了 event.preventDefault();这是停止默认回发行为所必需的,但您实际上需要有该变量可供您使用(通常来自导致此代码运行的“单击”或“提交”事件回调。显示您实际触发此函数的方式。跨度> -
另外,在重新格式化您的代码后,似乎 a) 这个 sn-p 不完整,不会自行编译,并且 b) event.preventDefault() 在您的 sendToController() 函数之外,所以不清楚它什么时候被执行。就目前而言,没有足够的信息来肯定地回答这个问题,请编辑您的代码示例,以便我们可以看到发生了什么正确
-
@cmcc8712,
sendToController方法是在单击按钮时调用的吗? -
是的,这是从提交按钮调用的
-
看看我刚才提供的答案。此外,ADyson 在他的第一条评论中所说的是真正的问题,尽管您可以采用另一种在您的场景中不使用 preventDefault 的方法。
标签: jquery asp.net ajax model-view-controller