views:

490

answers:

4

There is a way to automatically submit a form without clicking to a "submit" button?

I have a form with one "file" input. I would submit the form after the user have selected one file.

A: 

I don't believe you can do this. Browsers are very, very strict about what you can do to file upload fields, because of the potential for abuse. If the user accidentally selects a private file, they wouldn't want it to immediately start uploading that file to a random server.

ceejayoz
not true, I just tested the code in my answer, and it works (at least in Firefox).
Marius
Odd, similar code not working here. Checking further...
ceejayoz
+2  A: 

yes, you can use the form.submit() function. Add an onchange listener on the file input and link it to the form.submit function, like so:

<form action="upload.php" method="post">
<input type="file" onchange="this.form.submit()" name="myFile"/>
</form>
Marius
A: 

Yes, you can add the following to the onchange event of the file input:

<input type='file' .... onchange='this.form.submit();'>

this submits the form right after the user has picked a file. However, the user can't correct a mistaken selection before submitting - be sure to check whether this is really wise.

Pekka
A: 

I'm not sure what the restrictions are with doing this in an HTML form.

You can, however, do it with Flash. Gmail does it - when I click "Attach a file", I get prompted with a file browse dialog, and when I OK that dialog the upload begins immediately, and also gives me a progress bar.

Googling for "Flash uploader" will give you many options, but I don't have experience with any of them.

RichieHindle