2011-03-02 35 views
37

我有一個表單上傳文件並在頁面上定位一個iframe。當用戶點擊提交時,我想讓文件內容「清除」出來。有沒有「提交後」jquery選項?

我想這

$('#imageaddform').submit(function(){ 
    $('#imagefile').val(''); 
}); 

但它清除表單之前提交,所以沒有什麼是永遠上傳。

提交後如何清除?

+1

不使這一答案,因爲它是一個猜測:'$( 'iframe')。load(function(){$('#imagefile')。val('');});' – Quentin 2011-03-02 15:14:26

+0

我沒有使用jQuery表單回傳。但是,在點擊按鈕之後,在讀取它之後,但在下一頁加載之前,您是正確的。它的目標是一個iframe,不會重新加載瀏覽器窗口。 – polyhedron 2011-03-02 15:17:11

+0

+1 @大衛,因爲它的工作 – polyhedron 2011-03-02 15:19:12

回答

32

如果你沒有其他的處理程序的約束,你可以做這樣的事情:

$('#imageaddform').submit(function(e) { 
    e.preventDefault(); // don't submit multiple times 
    this.submit(); // use the native submit method of the form element 
    $('#imagefile').val(''); // blank the input 
}); 
+0

+1,這是一個好主意。 – 2011-03-02 15:25:23

+0

不提交表單替換頁面? – 2011-03-02 15:34:29

+4

@Sime如果它有一個指向iframe的「target」屬性... – lonesomeday 2011-03-02 15:41:04

4

你可以做這樣的事情:

$('#imageaddform').submit(function(){ 
    setTimeout(function() { 
    $('#imagefile').val(''); 
    },100); 
}); 
+0

你測試過了嗎? – amosrivera 2011-03-02 15:18:40

+0

這是工作 – 2012-08-24 07:41:47

+0

慢速計算機需要更多的發送請求與您的代碼取決於現代PC的使用,這是不標準或不實用。有時它起作用,有時不起作用。 – 2015-12-20 20:01:58

2

如何ü提交表單?如果這是正常的形式後,然後頁不會存在,在那種情況下,我想知道如果你正在尋找在頁面刷新之前清除表單,以便當用戶回來時,他沒有看到填充的值。

如果表格由AJAX提交,那麼你可以

function(){ 
$('form1')[0].submit(); 
clearForm(); 
} 

我錯過了這個問題嗎?

+0

頁面不刷新。它的目標是一個iframe – polyhedron 2011-03-02 15:24:41

+0

從來沒有想過會出現這種情況。你可以使用上面發佈的定時器方法。或者我可以告訴一個解決方法。使用一個隱藏的變量,並在那裏放置你的細節並提交該字段。同時清除主要表格。所以這會使表格清除。只是一個解決方法,但骯髒的解決方案 – 2011-03-02 15:28:01

+0

David在問題的評論中發佈了一個解決方案。到目前爲止,這是最適合我的解決方案。 – polyhedron 2011-03-02 15:31:01

22

Lonesomeday的解決方案爲我工作,但谷歌瀏覽器,我發現它仍然會提交空表單數據,除非我加了這樣的超時:

$('#imageaddform').submit(function(e) { 
    e.preventDefault(); // don't submit multiple times 
    this.submit(); // use the native submit method of the form element 

    setTimeout(function(){ // Delay for Chrome 
     $('#imagefile').val(''); // blank the input 
    }, 100); 
}); 
+2

Gondrup ...非常感謝你爲Chrome發佈這個解決方案......我想我一直在想,直到找到你的解決方案。 Chrome在提交之前清除了表單。 – flinx777 2012-01-25 22:05:06

+0

剛剛經過測試,Chrome不再需要這種破解。隨着推送更新,我不確定向後兼容性對於Chrome來說有多重要。 – MCB 2016-11-27 06:00:54

+0

這取決於我認爲的預期可靠性..更好地使用這個破解比爲一些用戶打破重要功能 – 2016-12-17 01:25:32