in html:
<form action="next.html">
<!-- tags here -->
<button id="prev">Prev</button>
<button id="next">Next</button>
</form>
在Javascript中:
$("form").submit (function(e) {
e.preventDefault();
if (e.originalEvent.explicitOriginalTarget.id == "next") {
doPostData();
// window.location = "next.html";
}
else if (e.originalEvent.explicitOriginalTarget.id == "prev") {
window.location = "prev.html";
}
}
我已根据示例here
将全局错误处理程序附加到$(document).ajaxError
解析代码
doPostData()
基本上向服务器发送POST请求。如果成功,一切都很好,但是当我收到错误时,我不知道如何阻止表单提交。错误闪烁,浏览器重定向到“下一页”。
我怎样才能优雅地解决这个问题?
答案 0 :(得分:0)
为了后代,我终于弄清楚出了什么问题:
错误处理程序正确启动但重定向到下一页仍然发生,因为仍有window.location = "next.html"
可用。与从上面代码中的window.location
行删除评论类似。
基本设置,考虑到上述代码仅适用于FireFox(不适用于Chrome或Safari):
$(document).ajaxError(genericAjaxErrorHandler);
$("#prev").click(function() {
window.location = "prev.html";
});
$("#next").click(function() {
doPostData();
});
function doPostData() {
// actions here
if (allIsOk) {
window.location = 'next.html';
}
}
我添加了
$('form').submit( function(e) {
e.preventDefault();
});
可以肯定,但可能没有必要。