如何在输入字段集中一次后检查输入字段的值? (与jquery)。我正在寻找进行实时搜索,并完全删除我的表单上的提交按钮。jquery实时搜索
4
A
回答
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
事件,但很明显,它是真棒
1
$('#<element>').bind('keyup', function() { //do something });
0
setInterval浮现在脑海。
或者你可以看看onKeyUp或onKeyDown或onClick或onChange等事件。
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
});
为了提高性能,你可以保存对象的搜索(例如缓存[“某些搜索”] =结果),如果相同的请求时,你不必再次请求服务器。
0
试试这个:
$("#search").on("keyup",function(){
Search(...);
}
的事情是,你需要做的是调用你的函数是做代码
或者把这个网站作为输入HTML头像功能:
<input type="text" onKeyUp="Search(this.value)"/>
延迟行动的任何提示?我应该使用.delay()吗? – andrei 2011-01-06 20:36:56
在你的ajax调用之前设置一个像`searching = true`的布尔,并在再次调用之前检查`if(!searching)`,然后在ajax完全回调中设置`searching = false`。您还需要重新搜索最新值,如果它不能搜索时它想 – hunter 2011-01-06 20:42:11