我添加了当用户离开文本框以自动保存文本时触发的ajax调用。页面底部还有一个保存按钮(保存按钮仍然是必需的,因为它会在该时间点永久存档文档状态。)
问题是当用户编辑文本框然后直接单击提交按钮时。发出了ajax请求,然后提交请求将其终止,我收到错误消息。如果我没有从服务器那里得到成功的回复,那么我会显示一条消息,让用户知道存在问题(长话短说,我们在用户花费很长时间输入数据方面存在问题,然后无论出于何种原因,它都没有被提交,而且它们全部丢失了。
如果他们点击了“保存”按钮,我就不在乎请求被取消了,因为点击“保存”显然是要保存数据。如何区分连接丢失的ajax错误与因提交表单而取消连接的错误?
我试过了:
var formIsSubmitting = false;
$(document).ready(function () {
$('form').on('submit', function (e) {
debugger;
formIsSubmitting = true;
});
});
function handleError(xmlRequest) {
debugger;
if (!formIsSubmitting)
alert(xmlRequest.status + ' \n\r ' + xmlRequest.statusText + '\n\r' + xmlRequest.responseText);
}
但这并没有奏效。它也不会在任何一个调试器线上中断,因此不确定是什么原因。
编辑:
这是按钮的样子:
<asp:LinkButton ID="lbnSaveP1" runat="server" OnCommand="GoToPage"
OnClientClick="return validateP1();" CommandName="1" CommandArgument="1" />
validateP1并没有做任何奇特的事......只是你期待的事情。