6

我有一个用于上传文件的简单表单。如果我使用普通的提交按钮,一切都会按预期工作:

<form id="mainform" method="post" action="/" enctype="multipart/form-data">
...
<input type="submit" id="submit" value="Analyze File"/>
</form>

但是如果我将其更改为普通按钮并使用 Javascript 提交表单,则没有任何反应:

<input type="button" id="submit" value="Analyze File" onclick="document.getElementById('mainform').submit()"/>

我验证了 onclick 处理程序确实被调用了,并且查找表单工作正常。例如,如果我将其更改为onclick="alert(document.getElementById('mainform').action)",则警报会按预期出现并显示表单的目标 URL。但是由于某种原因,对 submit() 的调用根本不会提交表单。

4

2 回答 2

9

问题是你的submit按钮。它的 id 是submitdocument.getElementById("mainform").submit表示 ID 为 的按钮submit,而不是submit功能。

您只需要更改该按钮的 ID,就可以了。

于 2013-09-19T19:19:53.523 回答
5

.submit()您在方法和以下内容之间存在命名冲突:

<input type="submit" id="submit" value="Analyze File"/>

通过拥有它id,对它的引用被分配给 的submit属性<form>,它替换了方法。

如果您重命名<input>,您应该能够.submit()按预期:

<input type="submit" id="mainform_submit" value="Analyze File"/>
于 2013-09-19T19:21:40.267 回答