diff --git a/modules/eb_widget/js/dropzonejs_eb_widget.common.js b/modules/eb_widget/js/dropzonejs_eb_widget.common.js
index a0b8362..6d88d7d 100644
--- a/modules/eb_widget/js/dropzonejs_eb_widget.common.js
+++ b/modules/eb_widget/js/dropzonejs_eb_widget.common.js
@@ -29,7 +29,37 @@
               if (item.instance.getRejectedFiles().length == 0) {
                 $submit.removeAttr("disabled");
               }
+
+              // If there are no files in DropZone -> disable Button.
+              if (item.instance.getAcceptedFiles().length === 0) {
+                $submit.prop("disabled", true);
+              }
             });
+
+            if (drupalSettings.entity_browser_widget.auto_select) {
+              item.instance.on("queuecomplete", function () {
+                var dzInstance = item.instance;
+                var filesInQueue = dzInstance.getQueuedFiles();
+                var i, rejectedFiles;
+
+                if (filesInQueue.length === 0) {
+                  // Remove filed files.
+                  rejectedFiles = dzInstance.getRejectedFiles();
+                  for (i = 0; i < rejectedFiles.length; i++) {
+                    dzInstance.removeFile(rejectedFiles[i]);
+                  }
+
+                  // Ensure that there are some files that should be submitted.
+                  if (dzInstance.getAcceptedFiles().length > 0 && dzInstance.getUploadingFiles().length === 0) {
+                    jQuery(dzInstance.element)
+                      .parent()
+                      .siblings('[name="auto_select_handler"]')
+                      .trigger('auto_select_enity_browser_widget');
+                  }
+                }
+              });
+            }
+
           }
         });
       }
diff --git a/modules/eb_widget/src/Plugin/EntityBrowser/Widget/DropzoneJsEbWidget.php b/modules/eb_widget/src/Plugin/EntityBrowser/Widget/DropzoneJsEbWidget.php
index 5bc8136..addc431 100644
--- a/modules/eb_widget/src/Plugin/EntityBrowser/Widget/DropzoneJsEbWidget.php
+++ b/modules/eb_widget/src/Plugin/EntityBrowser/Widget/DropzoneJsEbWidget.php
@@ -4,6 +4,8 @@ namespace Drupal\dropzonejs_eb_widget\Plugin\EntityBrowser\Widget;
 
 use Drupal\Component\Utility\Bytes;
 use Drupal\Component\Utility\NestedArray;
+use Drupal\Core\Ajax\AjaxResponse;
+use Drupal\Core\Ajax\InvokeCommand;
 use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Session\AccountProxyInterface;
@@ -20,7 +22,8 @@ use Symfony\Component\EventDispatcher\EventDispatcherInterface;
  * @EntityBrowserWidget(
  *   id = "dropzonejs",
  *   label = @Translation("DropzoneJS"),
- *   description = @Translation("Adds DropzoneJS upload integration.")
+ *   description = @Translation("Adds DropzoneJS upload integration."),
+ *   autoSelect = TRUE
  * )
  */
 class DropzoneJsEbWidget extends WidgetBase {
@@ -131,6 +134,25 @@ class DropzoneJsEbWidget extends WidgetBase {
     $form['#attached']['library'][] = 'dropzonejs_eb_widget/common';
     $original_form['#attributes']['class'][] = 'dropzonejs-disable-submit';
 
+    // Add hidden element used to make execution of auto-select of form.
+    if ($config['settings']['auto_select']) {
+      $form['auto_select_handler'] = [
+        '#type' => 'hidden',
+        '#name' => 'auto_select_handler',
+        '#id' => 'auto_select_handler',
+        '#attributes' => ['id' => 'auto_select_handler'],
+        '#submit' => ['::submitForm'],
+        '#executes_submit_callback' => TRUE,
+        '#ajax' => [
+          'callback' => [get_class($this), 'handleAjaxCommand'],
+          'event' => 'auto_select_enity_browser_widget',
+          'progress' => [
+            'type' => 'fullscreen',
+          ],
+        ],
+      ];
+    }
+
     return $form;
   }
 
@@ -228,9 +250,23 @@ class DropzoneJsEbWidget extends WidgetBase {
       $files[] = $file;
     }
 
-    if (!empty(array_filter($files))) {
-      $this->selectEntities($files, $form_state);
-      $this->clearFormValues($element, $form_state);
+    $this->selectEntities($files, $form_state);
+    $this->clearFormValues($element, $form_state);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function selectEntities(array $entities, FormStateInterface $form_state) {
+    if (!empty(array_filter($entities))) {
+      $config = $this->getConfiguration();
+
+      if ($config['settings']['auto_select']) {
+        $form_state->set('added_entities', $entities);
+      }
+      else {
+        parent::selectEntities($entities, $form_state);
+      }
     }
   }
 
@@ -350,4 +386,46 @@ class DropzoneJsEbWidget extends WidgetBase {
     return array_diff(parent::__sleep(), ['files']);
   }
 
+  /**
+   * Handling of automated submit of uploaded files.
+   *
+   * @param array $form
+   *   Form.
+   * @param \Drupal\Core\Form\FormStateInterface $form_state
+   *   Form state.
+   *
+   * @return \Drupal\Core\Ajax\AjaxResponse
+   *   Returns ajax commands that will be executed in front-end.
+   */
+  public static function handleAjaxCommand(array $form, FormStateInterface $form_state) {
+    $ajax = new AjaxResponse();
+
+    if (($triggering_element = $form_state->getTriggeringElement()) && $triggering_element['#name'] === 'auto_select_handler') {
+      $entity_ids = [];
+
+      $added_entities = $form_state->get('added_entities');
+      /** @var \Drupal\Core\Entity\EntityInterface $entity */
+      foreach ($added_entities as $entity) {
+        $entity_ids[] = $entity->getEntityTypeId() . ':' . $entity->id();
+      }
+      $form_state->unsetValue('added_entities');
+
+      // Add command to clear list of uploaded files. It's important to set
+      // empty string value, in other case it will act as getter.
+      $ajax->addCommand(
+        new InvokeCommand('[data-drupal-selector="edit-upload-uploaded-files"]', 'val', [''])
+      );
+
+      // Add Invoke command to select uploaded entities.
+      $ajax->addCommand(
+        new InvokeCommand('.entities-list', 'trigger', [
+          'add-entities',
+          [$entity_ids],
+        ])
+      );
+    }
+
+    return $ajax;
+  }
+
 }
diff --git a/modules/eb_widget/src/Plugin/EntityBrowser/Widget/MediaEntityDropzoneJsEbWidget.php b/modules/eb_widget/src/Plugin/EntityBrowser/Widget/MediaEntityDropzoneJsEbWidget.php
index 58428e6..297159d 100644
--- a/modules/eb_widget/src/Plugin/EntityBrowser/Widget/MediaEntityDropzoneJsEbWidget.php
+++ b/modules/eb_widget/src/Plugin/EntityBrowser/Widget/MediaEntityDropzoneJsEbWidget.php
@@ -24,7 +24,8 @@ use Symfony\Component\EventDispatcher\EventDispatcherInterface;
  * @EntityBrowserWidget(
  *   id = "dropzonejs_media_entity",
  *   label = @Translation("Media Entity DropzoneJS"),
- *   description = @Translation("Adds DropzoneJS upload integration that saves Media entities.")
+ *   description = @Translation("Adds DropzoneJS upload integration that saves Media entities."),
+ *   autoSelect = TRUE
  * )
  */
 class MediaEntityDropzoneJsEbWidget extends DropzoneJsEbWidget {
@@ -190,10 +191,8 @@ class MediaEntityDropzoneJsEbWidget extends DropzoneJsEbWidget {
       $media_entity->save();
     }
 
-    if (!empty(array_filter($media_entities))) {
-      $this->selectEntities($media_entities, $form_state);
-      $this->clearFormValues($element, $form_state);
-    }
+    $this->selectEntities($media_entities, $form_state);
+    $this->clearFormValues($element, $form_state);
   }
 
 }
