2013-03-12 72 views
3

我有一個頁面來下載文件,具體取決於某種形式的配置。表格只發送第一次

當我發送表單時,文件可以正常下載,但是如果我改變表單並重新發送,則什麼都不會發生。

實施例形式:

<form action="/download" method="get" target="_blank"> 
    <input type="checkbox" name="some_option" value="1" /> 
    <input type="submit" value="Download" /> 
</form> 

形式發送僅在第一次。

我想過使用JS發送表單,但我不認爲文件下載的工作方式。

有什麼建議嗎?

編輯:添加target="_blank"喜歡建議。

UPDATE:

添加了這個:

$('form').submit(function() { 
    this.action = addRandomParam(this.action); 
    console.log(this.action); 
}); 

submit事件被觸發每次「下載」按鈕被擊中的時間,但我仍然得到文件下載僅在第一次。

+2

我不確定'action =「download」'是什麼意思。 'download'應該由相對或絕對的有效URL替換。 – Blazemonger 2013-03-12 15:07:25

+0

您可否詳細說明再次發送表單? – hjpotter92 2013-03-12 15:07:37

回答

0

好了,問題是一些JavaScript做這樣的事情(代碼只是說明:P)...

$('form').submit(function() { 
    if (alreadySent()) { 
    this.preventDefault(); 
    } 
    setAsSent(); 
}); 

這是爲了防止在正常的形式被髮送多次。

謝謝大家的答案。

2

假設你的下載URL是download,你需要在那裏添加一個斜線,否則下一個提交會帶你到/download/download,這顯然不存在。如果這是正確的,你可以嘗試設置你的行動到action="/download"

+0

我改變了,甚至添加了一個目標=「_ blank」..相同的結果。 – grilix 2013-03-12 15:15:10

+0

不認爲你可以在表單上設置「目標」,只能在''標籤上設置。你能確認表單動作是否是'/ download'? – hexblot 2013-03-12 15:17:38

+0

目標工作,它打開一個新標籤下載文件並關閉它。動作「/下載」也可以正常工作。問題是我再次點擊「下載」時,它從第二次不做任何事情,沒有網絡活動,沒有錯誤,什麼都沒有。 – grilix 2013-03-12 15:23:20

1

難道是瀏覽器以某種方式緩存提交的URL嗎?你可以嘗試添加一個隨機參數到下載URL後點擊提交按鈕?這樣下次你點擊提交時,瀏覽器會認爲它是一個不同的網址?