如何使用JavaScript提交没有提交按钮的“文件”输入?

时间:2009-12-14 23:08:18

标签: javascript file forms submit

有一种方法可以在不点击“提交”按钮的情况下自动提交表单吗?

我有一个带有一个“文件”输入的表单。我会在用户选择一个文件后提交表单。

5 个答案:

答案 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上​​传器”会给你很多选择,但我没有任何经验。