riklomas / quicksearch

A jQuery plugin for searching through tables, lists, etc quickly
http://www.lomalogue.com/jquery/quicksearch/
680 stars 261 forks source link

THIS PROJECT IS VERY MUCH DEAD AND NOT MAINTAINED. IT'S BEEN 6+ YEARS SINCE THE LAST UPDATES. DON'T EXPECT THIS TO WORK.

jQuery quicksearch plug-in

A jQuery based plug-in for filtering large data sets with user input

Examples

Usage

Note that the usage has changed in the latest version of quicksearch, the code is not backwards compatible, the form and input are not build by the script any more.

$(input_selector).quicksearch(elements_to_search, options);

Example on table rows

/* Example form */
<form>
    <input type="text" id="search">
</form>

/* Example table */
<table>
    <tbody>
        <tr>
            <td>Test cell</td>
            <td>Another test cell</td>
        </tr>
    </tbody>
</table>

<script type="text/javascript" src="https://github.com/riklomas/quicksearch/raw/master/jquery.js"></script>
<script type="text/javascript" src="https://github.com/riklomas/quicksearch/raw/master/jquery.quicksearch.js"></script>
<script type="text/javascript">
    $('input#search').quicksearch('table tbody tr');
</script>

Example on the <th> elements on a table row

$('input#search').quicksearch('table tbody tr', {
    selector: 'th'
});

Example of how to use with JS

var qs = $('input#id_search_list').quicksearch('ul#list_example li');
$('ul#list_example').append('<li>Loaded with Ajax</li>');
qs.cache();

Example of how to use with Ajax

var qs = $('input#search').quicksearch('table tbody tr');
$.ajax({
    'type': 'GET',
    'url': 'index.html',
    'success': function (data) {
        $('table tbody tr').append(data);
        qs.cache();
    }
});

Options

For example:

$('input#search').quicksearch('table tbody tr', {
    'delay': 100,
    'selector': 'th',
    'stripeRows': ['odd', 'even'],
    'loader': 'span.loading',
    'noResults': 'tr#noresults',
    'bind': 'keyup keydown',
    'onBefore': function () {
        console.log('on before');
    },
    'onAfter': function () {
        console.log('on after');
    },
    'show': function () {
        $(this).addClass('show');
    },
    'hide': function () {
        $(this).removeClass('show');
    }
    'prepareQuery': function (val) {
        return new RegExp(val, "i");
    },
    'testQuery': function (query, txt, _row) {
        return query.test(txt);
    }
});

Help make quicksearch better!

If you have a bug fix, the best way to help would be to:

I can't promise to answer every question about quicksearch, but please do report bugs here or send me a message on Github.

You can watch quicksearch for updates or follow me on Github and on Twitter.

License

Under the same licenses as the jQuery library itself: http://docs.jquery.com/License

Credits

jQuery quicksearch is made by Rik Lomas at Lomalogue

Thanks to Seth F. for fixes and Krzysiek Goj for the testQuery and prepareQuery option updates