2012-07-19 68 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