如何在聚焦一次后连续检查输入字段的值? (使用jquery)。我正在寻找实时搜索并完全删除表单上的提交按钮。
答案 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
事件,但显然很棒
答案 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)
或者您可以查看onKeyUp或onKeyDown或onClick或onChange等事件。
答案 4 :(得分:0)
试试这个:
$("#search").on("keyup",function(){
Search(...);
}
问题是你需要创建一个头像函数来调用你的函数来执行代码
或将此html作为输入html:
<input type="text" onKeyUp="Search(this.value)"/>