menu

Add an autocomplete dropdown below your input to suggest possible values in your form. You can populate the list of autocomplete options dynamically as well.

textsms
          Copied!
          content_copy
          
  <div class="row">
    <div class="col s12">
      <div class="row">
        <div class="input-field col s12">
          <i class="material-icons prefix">textsms</i>
          <input type="text" id="autocomplete-input" class="autocomplete">
          <label for="autocomplete-input">Autocomplete</label>
        </div>
      </div>
    </div>
  </div>
          
        

Initialization

The data is a json object where the key is the matching string and the value is an optional image url.

The key must be a text string. If you trust your data, or have properly sanitized your user input, you may use HTML by setting the option allowUnsafeHTML: true.

            Copied!
            content_copy
            
  document.addEventListener('DOMContentLoaded', function() {
    var elems = document.querySelectorAll('.autocomplete');
    var instances = M.Autocomplete.init(elems, {
      // specify options here
      data: {
        "Apple": null,
        "Microsoft": null,
        "Google": 'https://placehold.it/250x250'
      }
    });
  });


  // Or with jQuery

  $(document).ready(function(){
    $('input.autocomplete').autocomplete({
      // specify options here
      data: {
        "Apple": null,
        "Microsoft": null,
        "Google": 'https://placehold.it/250x250'
      },
    });
  });
          
        

Options

Name Type Default Description
data Object {} Data object defining autocomplete options with optional icon strings.
limit Number Infinity Limit of results the autocomplete shows.
onAutocomplete Function null Callback for when autocompleted.
minLength Number 1 Minimum number of characters before autocomplete starts.
sortFunction Function Sort function that defines the order of the list of autocomplete options.
allowUnsafeHTML Boolean false If true will render the key from each item directly as HTML. User input MUST be properly sanitized first.
dropdownOptions Object {} Pass options object to select dropdown initialization.
sortFunction

This is the default compareFunction. You can write your own compareFunction by passing in a function with these same 3 parameters. You can read more about how a compareFunction works here.

            Copied!
            content_copy
            
  // Sort function for sorting autocomplete results
  function (a, b, inputString) {
    return a.indexOf(inputString) - b.indexOf(inputString);
  }
            
          

To disable sorting and use the values as they appear in the data object, use a falsy value.

Methods

Because jQuery is no longer a dependency, all the methods are called on the plugin instance. You can get the plugin instance like this:

              Copied!
              content_copy
              
  var instance = M.Autocomplete.getInstance(elem);

  /* jQuery Method Calls
    You can still use the old jQuery plugin method calls.
    But you won't be able to access instance properties.

    $('.autocomplete').autocomplete('methodName');
    $('.autocomplete').autocomplete('methodName', paramName);
  */
              
            
.open();

Open autocomplete dropdown.


instance.open();
      

.close();

Close autocomplete dropdown.


instance.close();
      

.selectOption();

Select a specific autocomplete options.

Arguments

Element: Element of the autocomplete option.


instance.selectOption(el);
      

.updateData();

Update autocomplete options data.

Arguments

Object: Autocomplete options data object.


instance.updateData({
  "Apple": null,
  "Microsoft": null,
  "Google": 'https://placehold.it/250x250'
});
      

.destroy();

Destroy plugin instance and teardown


instance.destroy();
      

Properties

Name Type Description
el Element The DOM element the plugin was initialized with.
options Object The options the instance was initialized with.
isOpen Boolean If the autocomplete is open.
count Number Number of matching autocomplete options.
activeIndex Integer Index of the current selected option.
dropdown Dropdown Instance of the dropdown plugin for this autocomplete.