我有一个上传文件的简单表单。如果我使用普通的提交按钮,一切都按预期工作:
<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()的调用根本就不提交表单。
答案 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"/>