Handsontable search critera
HTML
<input id="search" placeholder="Searching" type="text">
<div id="table" class="hot handsontable"></div>
CSS
</style><!-- Ugly Hack due to jsFiddle issue --> <script src="http://docs.handsontable.com/0.15.0-beta6/scripts/jquery.min.js"></script> <script src="http://docs.handsontable.com/0.15.0-beta6/bower_components/handsontable/dist/handsontable.full.js"></script> <link type="text/css" rel="stylesheet" href="http://docs.handsontable.com/0.15.0-beta6/bower_components/handsontable/dist/handsontable.full.min.css">
JavaScript
document.addEventListener("DOMContentLoaded", function() {
var
myData = [
['Nissan', 2012, 'black', 'black'],
['Nissan', 2013, 'blue', 'white'],
['Chrysler', 2014, 'yellow', 'black'],
['Volvo', 2015, 'yellow', 'gray']
],
hot;
hot = new Handsontable(document.getElementById('table'), {
data: myData,
rowHeaders: true,
colHeaders: true,
colHeaders: ["Trend", "Year", "Color Ext", "Color Int"],
});
// The function push every row sastisfying the critera into an array that is loaded
function filter(search) {
var row, r_len;
var data = myData;
var array = [];
for (row = 0, r_len = data.length; row < r_len; row++) {
for(col = 0, c_len = data[row].length; col < c_len; col++) {
console.log(data[row][col] + " " + search);
if(('' + data[row][col]).toLowerCase().indexOf(search) > -1) {
array.push(data[row]);
break;
}
}
}
hot.loadData(array);
}
Handsontable.dom.addEvent(document.getElementById('search'), 'keyup', function() {
filter(('' + this.value).toLowerCase());
});
});