THIS PROJECT IS VERY MUCH DEAD AND NOT MAINTAINED. IT'S BEEN 6+ YEARS SINCE THE LAST UPDATES. DON'T EXPECT THIS TO WORK.
A jQuery based plug-in for filtering large data sets with user input
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 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>
<th>
elements on a table row$('input#search').quicksearch('table tbody tr', {
selector: 'th'
});
var qs = $('input#id_search_list').quicksearch('ul#list_example li');
$('ul#list_example').append('<li>Loaded with Ajax</li>');
qs.cache();
var qs = $('input#search').quicksearch('table tbody tr');
$.ajax({
'type': 'GET',
'url': 'index.html',
'success': function (data) {
$('table tbody tr').append(data);
qs.cache();
}
});
Delay of trigger in milliseconds
A query selector on sibling elements to test
An array of class names to go on each row
A query selector to find a loading element
A query selector to show if there's no results for the search
Event that the trigger is tied to
Function to call before trigger is called
Function to call after trigger is called
Function that will add styles to matched elements
Function that will add styles to unmatched elements
Function that transforms text from input_selector into query used by 'testQuery' function
Function that tells if a given item should be hidden It takes 3 arguments:
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);
}
});
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.
Under the same licenses as the jQuery library itself: http://docs.jquery.com/License
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