取消form.submit()

时间:2009-08-26 17:03:20

标签: asp.net javascript

在javascript函数中,我提交了一个表单:
  form.submit();

拥有大量数据。

是否可以在点击浏览器的停止按钮旁边取消此操作?

更新

也许我没有清楚自己提交大文件 具有在iframe中运行的uploadcontrol的表单。

2 个答案:

答案 0 :(得分:3)

您可以执行与Gmail相同的操作:撤消发送邮件(实验室功能)。

只是将邮件发送延迟了5秒钟。如果在那段时间服务器收到undo AJAX呼叫,则不发送邮件。

这可能会增加服务器端的复杂性,但不会那么多。

如果未发送信息,您可以使用this

//IE
document.execCommand('Stop');
//Firefox
window.stop();

所以整个事情看起来像这样(伪代码):

stop_submit(current_id){
    try{
        document.execCommand('Stop');
    }catch(e){}
    try{
        window.stop();
    }catch(e){}

    AJAXCall("/myfolder/cancel_submit/", "id="+current_id, "post");
    return;
}

答案 1 :(得分:0)

这是客户端 - 服务器架构的典型问题。一旦发出HTTP请求,就没有停止它。在所有请求之后,您将需要一种方法来恢复状态,以确保一切都恢复原状。

现在,您可以使用AJAX执行此操作并使用abort函数。或者,您可以尝试window.stop()document.execCommand("Stop"),具体取决于您的浏览器。但那些没有解决已经发送请求的问题。