diff --git a/core/modules/file/file.js b/core/modules/file/file.js
index 8ed377e..13b3c11 100644
--- a/core/modules/file/file.js
+++ b/core/modules/file/file.js
@@ -88,13 +88,13 @@
   Drupal.behaviors.fileButtons = {
     attach: function (context) {
       var $context = $(context);
-      $context.find('.js-form-submit').on('mousedown', Drupal.file.disableFields);
-      $context.find('.js-form-managed-file .js-form-submit').on('mousedown', Drupal.file.progressBar);
+      $context.find('.js-form-submit').on('replaceProgressBar.fileButtons', Drupal.file.disableFields);
+      $context.find('.js-form-managed-file .js-form-submit').on('replaceProgressBar.fileButtons', Drupal.file.progressBar);
     },
     detach: function (context) {
       var $context = $(context);
-      $context.find('.js-form-submit').off('mousedown', Drupal.file.disableFields);
-      $context.find('.js-form-managed-file .js-form-submit').off('mousedown', Drupal.file.progressBar);
+      $context.find('.js-form-submit').off('replaceProgressBar.fileButtons');
+      $context.find('.js-form-managed-file .js-form-submit').off('replaceProgressBar.fileButtons');
     }
   };
 
@@ -170,7 +170,11 @@
      *   The event triggered. For example `change.autoFileUpload`.
      */
     triggerUploadButton: function (event) {
-      $(event.target).closest('.js-form-managed-file').find('.js-form-submit').trigger('mousedown');
+      $(event.target).closest('.js-form-managed-file').find('.js-form-submit')
+        // setup required elements for progress.
+        .trigger('replaceProgressBar')
+        // trigger real submision button.
+        .trigger('mousedown');
     },
 
     /**
