我尝试编写一个简单的 JQuery 搜索。
这是我到目前为止所拥有的:
$(document).ready(function(){
$("#search").bind("keydown", function() {
if($("#search").val() != ''){
$.get("/search", {phrase: $("#search").val()}, function(data) {
$("#searchResults").html(data);
});
}else{
$("#searchResults").html('');
}
});
});
我遇到的问题是,当我按下某个键时,第一个字母不会发送到服务器。此外,在清除搜索结果之前,我必须按两次退格键。
我一直在使用 Firefox 来观察 get 请求。
例如,我按下“f”键,通过 get 请求传递的短语值为空。如果我按“ff”,则仅通过 get 请求发送“f”。在清除搜索结果之前,我必须按两次退格键。
有谁知道问题是什么或者我如何改变它以避免这个问题?
谢谢,
布莱恩
最佳答案
改为绑定(bind)到 keyup
事件。您在将当前击键添加到该值之前发送请求。按键事件顺序为 keydown
、keypress
、keyup
,并且值在按下和向上事件之间更新。
关于JQuery简单搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8350631/