表格只发送第一次

问题描述:

我有一个页面来下载文件,具体取决于某种形式的配置。表格只发送第一次

当我发送表单时,文件可以正常下载,但是如果我改变表单并重新发送,则什么都不会发生。

实施例形式:

<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

好了,问题是一些JavaScript做这样的事情(代码只是说明:P)...

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

这是为了防止在正常的形式被发送多次。

谢谢大家的答案。

假设你的下载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

难道是浏览器以某种方式缓存提交的URL吗?你可以尝试添加一个随机参数到下载URL后点击提交按钮?这样下次你点击提交时,浏览器会认为它是一个不同的网址?