Can I get a upload progress bar when submitting the form with "submit"?
Is this just "how it works"? - Yes, it's just how it works. This is a problem with HTTP protocol, if your site does not provide client-side implementation for that progress bar, it will not be shown. And Drupal forms are standard HTML / HTTP POST forms, so no implementation provided for traditional, old style POST.

What I do in such situations is:

With plupload

uploader.bind('QueueChanged', function() {


to automatically start upload and disable form's submitting. Then

uploader.bind('StateChanged', function() {


to reenable form's submitting once upload is done.

Without plupload

AutoUpload module has some good example code how to react on file selection and upload finish. I steal from it to do basically the same thing as above - disable form submitting when new file is added, enable it when it's uploaded. Alternatively, form submit behavior may start uploading files not yet uploaded, and only submit form when uploads finished.

Without traditional POST

If you can give up traditional submit, and re-write it with AJAX, leaving traditional way in place for graceful degradation, you can have a progress bar for a whole form. But it is a quite big task, too broad to cover in Q&amp;A format (at least for me).