我使用Light Javascript表过滤器来自动/快速搜索表。 我希望它首先使用默认值进行搜索。但是它只会在我输入内容时进行搜索。
请查看http://codepen.io/shank09/pen/wWBVGE
我默认值“Doe”,为了搜索我必须输入内容
我可以在自动对焦输入字段时触发键盘操作。
试过这个,但没有运气。
function autosearch() {
document.getElementById("quicksearch").value = '03/-';
onPressBackspace();
}
function onPressBackspace() {
document.getElementById("quicksearch").focus();
document.getElementById("quicksearch").value = document.getElementById("quicksearch").value.substring(0, document.getElementById("quicksearch").value.length - 1);
}
更新
function autosearch() {
document.getElementById("quicksearch").value = '987';
var s = document.getElementsByClassName('light-table-filter')[0];
triggerEvent(s, "input");
}
答案 0 :(得分:1)
当“输入”事件触发时,会发生过滤。但是当你有一个默认值时,事件不会被触发。你需要自己触发它。 使用jQuery更容易,但你也可以使用vanilla JavaScript。
LightTableFilter.init();
就像那样:$("light-table-filter").trigger("input");
在document.addEventListener('readystatechange', function() {...
function triggerEvent(el, type){
if ('createEvent' in document) {
// modern browsers, IE9+
var e = document.createEvent('HTMLEvents');
e.initEvent(type, false, true);
el.dispatchEvent(e);
} else {
// IE 8
var e = document.createEventObject();
e.eventType = type;
el.fireEvent('on'+e.eventType, e);
}
}
然后在init - LightTableFilter.init();
像这样:
var s = document.getElementsByClassName('light-table-filter')[0];
triggerEvent(s, "input");