fastsearch

1.11.1 • Public • Published

Fastsearch

Lightweight fast search / autocomplete plugin based on jQuery

Basic usage

 
$('input.fastsearch').fastsearch();
 
$('input.fastsearch').fastsearch({
    'noResultsText': 'No results found',
    'onItemCreate': function($item, model, fastsearchApi){
        $item.append(model.subtitle);
    }
});
 

Defaults / options

$.fastsearch.defaults = {
    wrapSelector: 'form', // fastsearch container defaults to closest form. Provide selector for something other
    url: null, // plugin will get data from data-url propery, url option or container action attribute
    responseType: 'JSON', // default expected server response type - can be set to html if that is what server returns
    preventSubmit: false, // prevent submit of form with enter keypress
 
    resultsContClass: 'fs_results', // html classes
    resultsOpenedClass: 'fsr_opened',
    resultsFlippedClass: 'fsr_flipped',
    groupClass: 'fs_group',
    itemClass: 'fs_result_item',
    groupTitleClass: 'fs_group_title',
    loadingClass: 'loading',
    noResultsClass: 'fs_no_results',
    focusedItemClass: 'focused',
 
    typeTimeout: 140, // try not to hammer server with request for each keystroke if possible
    minQueryLength: 2, // minimal number of characters needed for plugin to send request to server
 
    template: null, // provide your template function if you need one - function(data, fastsearchApi)
    mouseEvents: !('ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0), // detect if client is touch enabled so plugin can decide if mouse specific events should be set.
    focusFirstItem: false,
    flipOnBottom: false,
 
    responseFormat: { // Adjust where plugin looks for data in your JSON server response
        url: 'url',
        html: 'html',
        label: 'label',
        groupCaption: 'caption',
        groupItems: 'items'
    },
 
    fillInputId: true, // on item select plugin will try to write selected id from item data model to input
    inputIdName: null, // on item select plugin will try to write selected id from item data model to input with this name
 
    apiInputName: null, // by default plugin will post input name as query parameter - you can provide custom one here
 
    noResultsText: 'No results found',
    onItemSelect: 'follow', // by default plugin follows selected link - other options available are "fillInput" and custom callback - function($item, model, fastsearchApi)
 
    parseResponse: null, // parse server response with your handler and return processed data - function(response, fastsearchApi)
    onResultsCreate: null, // adjust results element - function($allResults, data, fastsearchApi)
    onGroupCreate: null, // adjust group element when created - function($group, groupModel, fastsearchApi)
    onItemCreate: null // adjust item element when created - function($item, model, fastsearchApi)
};

Package Sidebar

Install

npm i fastsearch

Weekly Downloads

525

Version

1.11.1

License

MIT

Last publish

Collaborators

  • dbrekalo