有一种方法可以在不点击“提交”按钮的情况下自动提交表单吗?
我有一个带有一个“文件”输入的表单。我会在用户选择一个文件后提交表单。
答案 0 :(得分:64)
是的,您可以使用form.submit()函数。在文件输入上添加一个onchange监听器并将其链接到form.submit函数,如下所示:
<form action="upload.php" method="post">
<input type="file" onchange="this.form.submit()" name="myFile"/>
</form>
答案 1 :(得分:8)
是的,您可以将以下内容添加到文件输入的onchange
事件中:
<input type='file' .... onchange='this.form.submit();'>
这在用户选择文件后立即提交表单。 但是,用户在提交之前无法纠正错误选择 - 请务必检查这是否真的明智。
答案 2 :(得分:3)
此解决方案适合我。
<form enctype="multipart/form-data" method="POST" action="/upload">
<input id="myfilefield" type="file" name="file">
<input type="submit">
</form>
document.getElementById('myfilefield').onchange = function() {
this.form.submit();
};
顺便说一句,您不需要使用闪光灯。 Gmail通过XHR Level 2来完成。
答案 3 :(得分:1)
我不相信你能做到这一点。浏览器对于您可以对文件上传字段执行的操作非常非常严格,因为可能存在滥用行为。如果用户意外选择了私有文件,他们就不希望它立即开始将该文件上传到随机服务器。
答案 4 :(得分:-1)
我不确定在HTML表单中执行此操作的限制是什么。
但是,您可以使用Flash执行此操作。 Gmail会这样做 - 当我点击“附加文件”时,系统会显示一个文件浏览对话框,当我确定该对话框时,立即开始上传,并为我提供了一个进度条。
谷歌搜索“Flash上传器”会给你很多选择,但我没有任何经验。