$.ajax({
type: 'POST',
url: "/User/SaveMyDetailsSettings",
data: mySettings.MyDetailsForm.serialize(),
success: function (data) {
alert("callback");
alert(data);
if (data == "Success") {
window.location = "User/MySettings";
}
else if (data == "Failed") {
alert("Sorry!! Failed to submit your settings");
}
}
});
并且这是在按钮的click事件(这是一个简单的链接)上添加的,但是这里的问题是它不等待响应而是直接调用success函数。请帮忙!!
答案 0 :(得分:2)
你有2个选项,你找到了其中一个:)
您可以像return false
一样:
$("a").click(function() {
//do stuff
return false;
});
这会阻止事件死亡,它不会起泡,也不会继续做任何事情。或者......你可以让它泡泡,做它通常做的所有事情,而不是使用event.preventDefault()
跟随链接,如下所示:
$("a").click(function(e) { //e is the argument to the function!
//do stuff
e.preventDefault();
});
这是event methods中的一个the API does,无法比.live()
更好地描述:
说明:如果调用此方法,则不会触发事件的默认操作。
例如,单击的锚点不会将浏览器带到新的URL。我们可以使用
event.isDefaultPrevented()
来确定此方法是否已被此事件触发的事件处理程序调用。
如果可能绑定其他事件处理程序,或者如果可能有{{3}}事件处理程序等等return false
,则这是更好的路径,他们不会他们会这样做。
答案 1 :(得分:0)
答案 2 :(得分:0)
从click事件返回false应该可以防止发生任何默认操作。但它影响ajax调用没有意义。
您是否在浏览器中使用了开发人员工具(firefox - firebug,即-f12,chrome-resources选项卡,不知道其他人)来添加断点或监控ajax调用?