diff --git a/js/dropdown-widget.js b/js/dropdown-widget.js
index b3434ab..aac4640 100644
--- a/js/dropdown-widget.js
+++ b/js/dropdown-widget.js
@@ -24,6 +24,10 @@
       var $links = $ul.find('.facet-item a');
       var $dropdown = $('<select class="facets-dropdown" />').data($ul.data());
 
+      if ($ul.hasClass('js-multiple-select')) {
+        $dropdown.attr('multiple', 'multiple');
+      }
+
       // Add empty text option first.
       var default_option_label = $ul.data('facet-default-option-label');
       var $default_option = $('<option />')
diff --git a/src/Plugin/facets/widget/MultipleDropdownWidget.php b/src/Plugin/facets/widget/MultipleDropdownWidget.php
new file mode 100644
index 0000000..bbd4343
--- /dev/null
+++ b/src/Plugin/facets/widget/MultipleDropdownWidget.php
@@ -0,0 +1,42 @@
+<?php
+
+namespace Drupal\facets\Plugin\facets\widget;
+
+use Drupal\Core\Form\FormStateInterface;
+use Drupal\facets\FacetInterface;
+
+/**
+ * The multiple dropdown widget.
+ *
+ * @FacetsWidget(
+ *   id = "multiple_dropdown",
+ *   label = @Translation("Multiple dropdown"),
+ *   description = @Translation("A configurable widget that shows a multiple dropdown."),
+ * )
+ */
+class MultipleDropdownWidget extends DropdownWidget {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function build(FacetInterface $facet) {
+    $build = parent::build($facet);
+    if (!$facet->getShowOnlyOneResult()) {
+      $build['#attributes']['class'][] = 'js-multiple-select';
+    }
+    return $build;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function buildConfigurationForm(array $form, FormStateInterface $form_state, FacetInterface $facet) {
+    $form += parent::buildConfigurationForm($form, $form_state, $facet);
+    if (!empty($form['warning'])) {
+      unset($form['warning']);
+    }
+
+    return $form;
+  }
+
+}
