I’m currently building a page where a search field acts as a filter. It works perfectly fine and shows data against related word, but there is one issue that I’d like to solve. When the entered string or other words is not found in all the existing the page remains blank.
How could I display a default message on my page when no results are found by the filter? Something like a simple <p>
explaining that no results were found
.
The idea is to display it only once as long as the string is not found.
$('#search_field').on('keyup', function() {
var value = $(this).val();
var patt = new RegExp(value, "i");
$('#userFind').find('tr').each(function() {
var $table = $(this);
if (!($table.find('td').text().search(patt) >= 0)) {
$table.not('.t_head').hide();
}
if (($table.find('td').text().search(patt) >= 0)) {
$(this).show();
}
});
});
3
Answers
This is untested since you haven’t provided any table to your question.
After you have looped though all tr, then check if any is visible. If not then append a tr with custom message and remove it and new search.
Assuming you have a div:
You can hide/show the
#zeroHits
div as follows:Try this untested code
post your HTML and I can test