2012-07-19 69 views
0

我正在静默地提交表单,即不使用jquery.submit()方法刷新页面。当用户选择一个文件并点击上传按钮上传开始并取消按钮启用。但我不知道如何取消这个上传。官方jQuery文档说使用jQuery提交取消提交

“我们可以取消通过调用事件对象.preventDefault()或通过返回从我们的处理程序错误提交行动”,但我不明白如何在我的情况下,使用此。 下面是我用来提交表单的代码。

$('#button').click(function() { 
    $('#form').submit(); 
}); 
+1

如果你不想提交表单,为什么要调用'$(“#form”)。submit()' – Esailija 2012-07-19 13:45:58

+0

如果用户请求取消上传,我将取消上传。 – kaysush 2012-07-19 13:47:17

+0

你能显示你的HTML吗?这将有所帮助。我相信你只能取消文件上传,如果你是异步上传。如果您使用表单文章使用常规文件输入,则一旦提交文件就无法取消。 – ryanulit 2012-07-19 13:49:03

回答

0

我认为有关如何使用jquery .submit()方法存在一些困惑。从jquery docs

当用户试图 提交表单提交事件被发送给一个元素。它只能附在元素上。可以通过单击明确的<input type="submit">, <input type="image"><button type="submit">或通过在某些表单元素具有焦点时按Enter键 来提交表单 。

这是什么意思是这个方法所做的实际上是处理表单的提交事件。如果您取消该事件,则您的文件上传被取消。中间没有。您要么允许上传文件,要么完全取消表单提交(上传)。此外,使用.preventDefault(),它是这样的:

$('#button').click(function() { 
    $('#form').submit(); 
}); 

$('#form').submit(function(e) { 
    e.preventDefault(); 
    // could also use return false; as a previous poster 
    // suggested but I have found e.preventDefault() to be more reliable 
}); 

您可能需要寻找到一些第三方插件来完成你正在尝试做的。一个这样的插件是Uploadify

0

有一次,提交已经到达服务器,没有什么可以用它做的(表单)。

return false;最多可以防止发生提交。

+0

这就是我要问的。我应该什么时候称此声明? – kaysush 2012-07-19 13:52:40

+0

就你而言,你可以在重新加载页面的窗体之外另外添加一个按钮,或者其他的东西。我的观点是,你不能取消AFTER提交。 – 2012-07-19 13:55:39

+0

表单数据未完整上传。它介于中间和用户取消上传。 – kaysush 2012-07-19 13:58:17