如何判断表单提交是否取消了ajax请求?

时间:2016-05-12 18:46:06

标签: javascript jquery ajax forms submit

我添加了当用户离开文本框以自动保存文本时触发的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并没有做任何奇特的事......只是你期待的事情。

0 个答案:

没有答案