自动搜索表默认值

时间:2016-06-02 17:17:29

标签: javascript html

我使用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");
}

1 个答案:

答案 0 :(得分:1)

当“输入”事件触发时,会发生过滤。但是当你有一个默认值时,事件不会被触发。你需要自己触发它。 使用jQuery更容易,但你也可以使用vanilla JavaScript。

的jQuery

LightTableFilter.init();

之后的trigger事件

就像那样:$("light-table-filter").trigger("input");

的JavaScript

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");