1.0.7 • Published 10 years ago

materialize-autocomplete v1.0.7

Weekly downloads
126
License
MIT
Repository
github
Last release
10 years ago

materialize-autocomplete

Materialize-css styled autocomplete, examples: https://icefox0801.github.io/materialize-autocomplete/examples/

Install

  • npm
$ npm install materialize-autocomplete
  • bower
$ bower install materialize-autocomplete

Usage

autocomplete

  • When typing inside an input, autocomplete prompts will show on dropdown list
  • Choosing an option by click or , , Enter keys
  • Removing a selection by click x when enable multiple selection
var autocomplete =$('#el').autocomplete({
    limit: 20,
    multiple: {
        enable: true,
        maxSize: 10,
        onExist: function (item) { /* ... */ },
        onExceed: function (maxSize, item) { /* ... */ }
    },
    appender: {
        el: '#someEl'
    },
    getData: function (value, callback) {
        // ...
        callback(value, data);
    }
});

$.fn.materialize_autocomplete

  • $.fn.materialize_autocomplete(options) [function]: Initialize an autocomplete widget and return an Autocomplete instance

Autocomplete options

  • cacheable [boolean]: Dropdown data cacheable or not, default: true
  • limit [number]: Max number of items show in dropdown, default: 10
  • multiple [object]: Configuration of multiple selection, seeing properties of multiple for more details
  • hidden [object]: Configuration of hidden input (used for storing ids joined by selections or id of a selection), seeing properties of hidden for more details
  • appender [object]: Configuration of appender (where to append selections when multiple selection is enabled), seeing properties of appender for more details
  • dropdown [object]: Configuration of dropdown, seeing properties of dropdown for more details
  • onSelect(item) [function]: Callback function after selecting an item in single selection mode
  • getData(value, callback) [function]: Function for getting dropdown list data, asynchronous called with a callback
    • value [string]: Input value,when input event triggered, getData will be called with input value
    • callback(value, data) [function]: Callback function
      • value [string]: Same as value above
      • data [array]: Data array,should be formatted as [{ 'id': '1', 'text': 'a' }, { 'id': '2', 'text': 'b'}]
  • ignoreCase [boolean]: Ignore case or not, default: true
  • throttling [boolean]: Throttling for getData function or not, default: true

Autocomplete

Constructor

  • new Autocomplete(el, options) [function]: Constructor
    • el [string|object]: DOM element on which the widget applys
    • options [object]: Configuration of the widget

Instance property:

  • autocomplete.options [object]: Configuration object
  • autocomplete.$el [object]: JQuery object on which the widget applys
  • autocomplete.$wrapper [object]: Wrapper jQuery object,equal to autocomplete.$el.parent()
  • autocomplete.compiled [object]: Compiling functions for tagTemplate and itemTemplate
  • autocomplete.$dropdown [object]: JQuery object of dropdown
  • autocomplete.$appender [object]: JQuery object of appender
  • autocomplete.$hidden [object]: JQuery object of hidden input
  • autocomplete.resultCache [object]: Result cache object of getData when cacheable is true
  • autocomplete.value [array]: Value of widget, when multiple selection is enabled, autocomplete.value is ids joined by selections, otherswise autocomplete.value is id of a selection

Instance methods:

  • autocomplete.initialize() [function]: Initializing method
  • autocomplete.render() [function]: Rendering method
  • autocomplete.setValue(item) [function]: Value setting method
    • item [object]: Selection object, e.g. { id: '1', text: 'a'}
  • autocomplete.append(item) [function]: Appending an selection, called when options.multiple.enable is true
  • autocomplete.remove(item) [function]: Removing an selection, called when options.multiple.enable is true
  • autocomplete.select(item) [function]: Setting the value, called when options.multiple.enable is false

Detailed options

Properties of multiple

propertydescriptiondefault
enable [boolean]Enabled or notfalse
maxSize [number]Max number of selections4
onExist [function]Callback when selection to append exists
onExceed [function]Callback when selections exceed maxSize
onAppend [function]Callback after appending a selection
onRemove [function]Callback after removing a selection

Properties of hidden

propertydescriptiondefault
enable [boolean]Enabled or notfalse
el [string|object]Applying an existing DOM element if not null, otherwise created one''
inputName [string]name attribute of hidden input''
required [boolean]required attribute of hidden inputfalse

Properties of appender

propertydescriptiondefault
el [string|object]Applying an existing DOM element if not null, otherwise created one''
tagName [string]TagName of appender when appender.el is nullul
className [string]ClassName attribute of appenderac-appender
tagTemplate [string]Template string of selections inside appender

Note that tagTemplate should use undescore template semantic, data-id and data-text attributes should be specified on outest DOM

Properties of dropdown

propertydescriptiondefault
el [string|object]Applying an existing DOM element if not null, otherwise created one''
tagName [string]TagName of dropdown when dropdown.el is nullul
className [string]ClassName attribute of dropdownac-dropdown
itemTemplate [string]Template string of items inside dropdown
noItem [string]Prompt for no data''

Note that itemTemplate should use undescore template, data-id and data-text attributes should be specified on outest DOM

1.0.7

10 years ago

1.0.6

10 years ago

1.0.5

10 years ago

1.0.4

10 years ago

1.0.3

10 years ago

1.0.2

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago