I have an array and its data is placed on a table. There are 3 fields for searching and a button.
Somehow the searching doesn't work. Please take a look at the code below and I am wondering what I am missing here.
live http://jsfiddle.net/
HTML
Search by ID<input type="text" id="searchByID" maxlength="11" >
<br>Search by Name
<input type="text" id="searchByName">
<br>Search by Date From:
<input type="text" id="dateFrom" class="datepicker"> To: <input type="text" id="dateTo" class="datepicker">
<br>
<button type="button" id="searchButton" class="buttClick">SEARCH</button>
<p></p>
<table id="mytable" width="90%" border="1" bordercolor="#ccc" class="fltLt">
</table>
JS
$(function() {
$( ".datepicker" ).datepicker();
});
$(document).ready(
function()
{
var members = [
{
name: "Keely Luther",
id : "1235-454676",
joined: "01/16/2014"
},
{
name: "Mike Jenson",
id : "1235-478948",
joined: "05/23/2014"
},
{
name: "Sharon Lee",
id : "1235-234532",
joined: "04/15/2013"
}
];
members.sort(function (a, b) {
return a.name.split(' ')[1] > b.name.split(' ')[1];
});
$("#searchByID").keypress(function (e) {
//if the letter is not digit then display error and don't type anything
if (e.which != 8 && e.which != 0 && e.which != 45 && (e.which < 48 || e.which > 57)) {
//display error message
$("#errmsg").html("Digits Only").show().fadeOut("slow");
return false;
}
}); //end searchByID").keypress
$('#searchButton').click(
function()
{
var filtered = members.filter(
function(item)
{
return
(item.name == '' || item.name.toLowerCase().indexOf($('#searchByName').val().toLowerCase()) != -1) &&
($('#dateFrom').val() =='' || item.joined >= $('#dateFrom').val()) &&
($('#dateTo').val() == '' || item.joined <= $('#dateTo').val()) &&
($('#searchByID').val() == '' || item.id == $('#searchByID').val())
});
refreshTable(filtered);
}); //end click
function refreshTable(list)
{
$("#mytable").html("<tr><td>NAME</td><td>ID</td><td>JOINS</td>");
for (var i = 0; i < list.length; i++)
{
var tr="<tr>";
var td1="<td class='PL10'>" +list[i]["name"]+"</td>";
var td2="<td class='txtCenter'>"+list[i]["id"]+"</td>";
var td3="<td class='txtCenter'>"+list[i]["joined"]+"</td></tr>";
$("#mytable").append(tr+td1+td2+td3);
}
if(list.length==0)
{
$('#mytable').html("<span id='errmsg'>No Data Found</span>");
}
}
refreshTable(members);
});//end ready