A combination search/select box, inspired by those seen here and there on GitHub. Demo.
- Filtering options
- Opening dropdown with enter key or down key when focused
- Closing dropdown with esc key when search field is focused
- Changing highlighted option in dropdown with up and down keys
- Choosing an option and closing the dropdown with enter key
- Updates underlying
<select>
element on change, and triggers "change" event
Install with bower:
bower install seeker
Or through NPM for Browserify:
npm install seeker
Pass a jQuery selection, a CSS selector, or a DOM node to the constructor.
// jQuery selection
var seeker = new Seeker( $( 'select' ) );
// CSS selector
var seeker = new Seeker( 'select' );
// DOM node
var seeker = new Seeker( document.querySelector( 'select' ) );
Opens the dropdown and focuses the search field. Returns the instance.
Closes the dropdown. Returns the instance.
.setActive(Number index | Element el | Event evt | String selector | jQuery jqObj)
-> Seeker instance
Sets the active (i.e. highlighted) option. If passed an index n then the nth option will be highlighted. If passed a jQuery object, will highlight the first element in the collection if present in options. Otherwise, will apply jQuery to String or DOM Element and likewise locate and highlight that element. If passed an Event (or any object with a .target property), will use that element.
.setSelected(Number index | Element el | Event evt | String selector | jQuery jqObj)
-> Seeker instance
Sets the selected option and closes the dropdown if open. Accepts same variety of arguments as setActive
.
Returns select.val()
where select is the <select>
element underlying the Seeker instance. Unlike calling .val()
on a jQuery-wrapped select
, *can't be use to set the value~.
the jQuery selection representing the currently active option.
The jQuery selection representing the currently selected option.