diff --git a/entity_browser.module b/entity_browser.module
index 40eeb5e..b3b7dd0 100644
--- a/entity_browser.module
+++ b/entity_browser.module
@@ -53,6 +53,11 @@ function entity_browser_form_alter(&$form, FormStateInterface &$form_state) {
     // Use Ajax.
     $form['actions']['submit']['#ajax'] = [
       'url' => Url::fromRoute('entity_browser.edit_form', ['entity_type' => $form_state->getFormObject()->getEntity()->getEntityTypeId(), 'entity' => $form_state->getFormObject()->getEntity()->id()]),
+      'options' => [
+        'query' => [
+          'details_id' => \Drupal::request()->query->get('details_id'),
+        ],
+      ],
     ];
   }
 }
diff --git a/js/entity_browser.common.js b/js/entity_browser.common.js
index a6253bb..a0c8a10 100644
--- a/js/entity_browser.common.js
+++ b/js/entity_browser.common.js
@@ -11,6 +11,24 @@
   Drupal.entityBrowser = {};
 
   /**
+   * Command to refresh an entity_browser_entity_reference field widget.
+   *
+   * @param {Drupal.Ajax} [ajax]
+   *   The ajax object.
+   * @param {object} response
+   *   Object holding the server response.
+   * @param {string} response.details_id
+   *   The ID for the details element.
+   * @param {number} [status]
+   *   The HTTP status code.
+   */
+  Drupal.AjaxCommands.prototype.entity_browser_value_updated = function (ajax, response, status) {
+    $('#' + response.details_id)
+      .find('input[type="hidden"][name$="[target_id]"]')
+      .trigger('entity_browser_value_updated');
+  };
+
+  /**
    * Reacts on "entities selected" event.
    *
    * @param {object} event
diff --git a/src/Ajax/ValueUpdatedCommand.php b/src/Ajax/ValueUpdatedCommand.php
new file mode 100644
index 0000000..fa08d66
--- /dev/null
+++ b/src/Ajax/ValueUpdatedCommand.php
@@ -0,0 +1,39 @@
+<?php
+
+namespace Drupal\entity_browser\Ajax;
+
+use Drupal\Core\Ajax\CommandInterface;
+
+/**
+ * AJAX command to refresh an entity_browser_entity_reference field widget.
+ */
+class ValueUpdatedCommand implements CommandInterface {
+
+  /**
+   * The ID for the details element.
+   *
+   * @var string
+   */
+  protected $details_id;
+
+  /**
+   * Constructor.
+   *
+   * @param string $details_id
+   *   The ID for the details element.
+   */
+  public function __construct($details_id) {
+    $this->details_id = $details_id;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function render() {
+    return [
+      'command' => 'entity_browser_value_updated',
+      'details_id' => $this->details_id,
+    ];
+  }
+
+}
diff --git a/src/Controllers/EntityBrowserController.php b/src/Controllers/EntityBrowserController.php
index 1c4545d..a2465a8 100644
--- a/src/Controllers/EntityBrowserController.php
+++ b/src/Controllers/EntityBrowserController.php
@@ -8,6 +8,8 @@ use Drupal\Core\Ajax\OpenDialogCommand;
 use Drupal\Core\Controller\ControllerBase;
 use Drupal\Core\Form\FormState;
 use Drupal\Core\Entity\EntityInterface;
+use Drupal\entity_browser\Ajax\ValueUpdatedCommand;
+use Symfony\Component\HttpFoundation\Request;
 
 /**
  * Returns responses for entity browser routes.
@@ -19,12 +21,14 @@ class EntityBrowserController extends ControllerBase {
    *
    * @param \Drupal\Core\Entity\EntityInterface $entity
    *   An entity being edited.
+   * @param \Symfony\Component\HttpFoundation\Request $request
+   *   The currently processing request.
    *
    * @return \Drupal\Core\Ajax\AjaxResponse
    *   An Ajax response with a command for opening or closing the dialog
    *   containing the edit form.
    */
-  public function entityBrowserEdit(EntityInterface $entity) {
+  public function entityBrowserEdit(EntityInterface $entity, Request $request) {
     // Build the entity edit form.
     $form_object = $this->entityTypeManager()->getFormObject($entity->getEntityTypeId(), 'edit');
     $form_object->setEntity($entity);
@@ -44,7 +48,13 @@ class EntityBrowserController extends ControllerBase {
     }
     else {
       // Return command for closing the modal.
-      return AjaxResponse::create()->addCommand(new CloseDialogCommand('#' . $entity->getEntityTypeId() . '-' . $entity->id() . '-edit-dialog'));
+      $response = AjaxResponse::create()->addCommand(new CloseDialogCommand('#' . $entity->getEntityTypeId() . '-' . $entity->id() . '-edit-dialog'));
+      // Also refresh the widget if "details_id" is provided.
+      $details_id = $request->query->get('details_id');
+      if (!empty($details_id)) {
+        $response ->addCommand(new ValueUpdatedCommand($details_id));
+      }
+      return $response;
     }
   }
 
diff --git a/src/Plugin/Field/FieldWidget/EntityReferenceBrowserWidget.php b/src/Plugin/Field/FieldWidget/EntityReferenceBrowserWidget.php
index 3c0a7ba..8b88416 100644
--- a/src/Plugin/Field/FieldWidget/EntityReferenceBrowserWidget.php
+++ b/src/Plugin/Field/FieldWidget/EntityReferenceBrowserWidget.php
@@ -547,6 +547,11 @@ class EntityReferenceBrowserWidget extends WidgetBase implements ContainerFactor
                     'entity' => $entity->id(),
                   ]
                 ),
+                'options' => [
+                  'query' => [
+                    'details_id' => $details_id,
+                  ],
+                ],
               ],
               '#access' => (bool) $this->getSetting('field_widget_edit'),
             ],
