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)
    };

    Install

    npm i fastsearch

    DownloadsWeekly Downloads

    314

    Version

    1.11.1

    License

    MIT

    Last publish

    Collaborators

    • dbrekalo