Edit in GitHubLog an issue

QuickSearch widget

The quickSearch widget is an autocomplete widget that populates a list of suggested search terms for a given field.

The suggest widget source is <Magento_Search_module_dir>/view/frontend/web/js/form-mini.js.

Initialize

For information about how to initialize a widget in a JS component or .phtml template, see the Initialize JavaScript topic.

Options

autocomplete

Attaches the autocomplete attribute to the search field.

Type: String

Default value: off

Accepted values: off, on

destinationSelector

The element's selector where the results will be added.

Type: String

Default value: null

isExpandable

The isExpandable option is used to show and hide search input field on devices with max width 768px.

Type: Boolean

Default value: null

formSelector

The form selector containing the search input field.

Type: String

Default value: No form by default.

minSearchLength

Minimum number of characters required before the auto suggest triggers.

Type: Integer

Default value: 2

responseFieldElements

Selector for the response elements.

Type: String

Default Value: ul li

searchLabel

Selector of a search input label.

Type: String

Default value: [data-role=minisearch-label]

selectClass

Class assigned to the selected suggested term.

Type: String

Default value: selected

submitBtn

Disable the submit button.

Type: String

Default value: button[type="submit"]

suggestionDelay

The suggestionDelay option prevents overloading the server with requests by waiting until the user has stopped typing for the specified period of time.

Type: Integer

Default value: 300

template

Template responsible for rendering returned data (suggested terms).

Type: String

Default value:

Copied to your clipboard
<li class="<%- data.row_class %>" id="qs-option-<%- data.index %>" role="option">
<span class="qs-option-name">
<%- data.title %>
</span>
<span aria-hidden="true" class="amount">
<%- data.num_results %>
</span>
</li>

url

The endpoint URL for processing the search query.

Type: String

Default value: null

Code sample

This example shows how to initialize the quickSearch widget and pass options during the initialization.

Copied to your clipboard
<form class="" id="new_search_form" action="/catalogsearch/result/" method="get">
<div class="field search">
<div class="control">
<input id="new-search"
data-mage-init='{"quickSearch":{
"formSelector":"#new_search_form",
"minSearchLength": 1,
"url":"/search/ajax/suggest",
"destinationSelector":"#search_results"}
}'
type="text"
name="q"
placeholder="<?= $block->escapeHtmlAttr(__('Search entire store here...')) ?>"
class="input-text"/>
<div id="search_results" class="search-autocomplete"></div>
</div>
</div>
<div class="actions">
<button type="submit"
title="<?= $block->escapeHtml(__('Search')) ?>"
class="action search"
aria-label="Search">
<span><?= $block->escapeHtml(__('Search')) ?></span>
</button>
</div>
</form>

Result

The result is an input with autocomplete results, where the results will be returned by the url option that was provided on initialization, as shown here:

Quick Search Widget

  • Privacy
  • Terms of Use
  • Do not sell or share my personal information
  • AdChoices
Copyright © 2024 Adobe. All rights reserved.