jquery实时搜索

时间:2011-01-06 20:13:33

标签: jquery

如何在聚焦一次后连续检查输入字段的值? (使用jquery)。我正在寻找实时搜索并完全删除表单上的提交按钮。

5 个答案:

答案 0 :(得分:8)

我会将keyup和mouseup事件绑定到输入

$("#search").keyup(Search).mouseup(Search);

function Search(event)
{
    // keyup for keyboard entry
    // mouseup for copy-pasting with the mouse        
}

在jsfiddle中与我斗争后,我终于想出了这个:

$("#search").keyup(function(e) {
    Search(e);
}).bind("paste", function(e) {
    // have to do this so the DOM can catch up on mouse right-click paste
    setTimeout(function() { Search(e); }, 100);
});

我不知道paste事件,但显然很棒

工作示例:http://jsfiddle.net/rLAxL/1/

答案 1 :(得分:2)

绑定keyup事件以检查内容并在更改内容时发出请求。要限制请求,请使用setTimeout

$("#input").keyup(function(e){
    if (window.liveSearch) clearTimeout(window.liveSearch);
    window.liveSearch = setTimeout(function(){

        // request results here

    }, 1000); // delay time in ms
});

为了提高性能,您可以将搜索保存在对象上(例如缓存[“some search”] = results),如果发出相同的请求,则不必再次请求服务器。

答案 2 :(得分:1)

$('#<element>').bind('keyup', function() { //do something });

答案 3 :(得分:0)

想到了setInterval。

或者您可以查看onKeyUp或onKeyDown或onClick或onChange等事件。

答案 4 :(得分:0)

试试这个:

$("#search").on("keyup",function(){
    Search(...);
}

问题是你需要创建一个头像函数来调用你的函数来执行代码

或将此html作为输入html:

<input type="text" onKeyUp="Search(this.value)"/>