使用Javascript提交表单不起作用

时间:2013-09-19 19:06:13

标签: javascript html forms

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

<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)",警报会按预期显示,并显示表单的目标网址。但由于某种原因,对submit()的调用根本就不提交表单。

2 个答案:

答案 0 :(得分:9)

问题在于您的submit按钮。其ID为submit,这意味着document.getElementById("mainform").submit代表ID为submit的按钮,而不是submit函数。

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

答案 1 :(得分:5)

.submit()方法与:

之间存在命名冲突
<input type="submit" id="submit" value="Analyze File"/>

通过拥有id,对submit的{​​{1}}属性的引用将被分配给<form>,后者将取代该方法。

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

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