我有以下表格:
<form id="vintro-upload-form" action="{url}?nexturl={nextUrl}" method="post" enctype="multipart/form-data" >
<input name="file" type="file"/>
<input name="token" type="hidden" value=""/>
<input value="Upload Video File" type="button" name="submit" onClick="checkFile()" class="button" />
</form>
和以下javascript:
<script>
function checkFile(){
var fileVal = document.forms["vintro-upload-form"].elements['file'].value;
//RegEx for valid file name and extensions.
if(fileVal != ""){vintro-upload-form.submit();}
else {alert('Please select the Video file.');}
}
</script>
什么有效?fileVal 分配很好。提交不起作用,当我检查调试器时,它说:“vintro 未定义。”
我尝试了什么?以下示例和代码:
- http://www.w3schools.com/jsref/met_form_submit.asp
- http://www.javascript-coder.com/javascript-form/javascript-form-submit.phtml
- document.vintro-upload-form.submit();
- document.forms["vintro-upload-form"].submit();
- document.getElementById("vintro-upload-form").submit();
- 将破折号/连字符更改为下划线
一切都没有成功。这个表单也有一些 jQuery(在另一个 .js 文件中),它使用连字符的名称可以正常工作。
为什么提交调用不起作用?
编辑:我已经尝试document.getElementById('vintro-upload-form').submit();
按照这个问题的答案中的建议使用,但是,这仍然失败。我的(Firefox)调试器说它不是一个函数。Chrome 的调试器解释了一点:“Uncaught TypeError: Property 'submit' of object # is not a function”(同时我要去谷歌这个。)
由于我的声望低于 100:好吧,事实证明,我问错了问题。
这是我找到的答案: Submitting Form Via Javascript, form defined in external PHP file
也检查接受的答案。