我有一个下拉列表,它由一个php文件通过ajax回显。网站上的用户可以使用此下拉列表搜索他的朋友。我有以下代码(验证未显示):
var textbox = $('#participant-textbox');
$(function(){
textbox.keydown(function(e) {
$.ajax({
type:"POST",
url:"sources/friend_search.php",
data:{value:document.getElementById('participant-textbox').value}
})
.done(function(rtrn) {
$('.invite-participants-dropdown').html(rtrn);
});
if(!DropdownState)
{
dropdown.show();
DropdownState=true;
}
});
});
虽然这样可行,但是ajax却落后了一步。我的意思是:
当我在文本框中输入“a”时,它不会显示任何内容。
当我输入'ab'时,它应该显示'abhishek'(我使用LIKE子句进行搜索),但它只搜索%a%
,因此会显示所有朋友的a
名。
当我输入'abh'时,它现在应该搜索%abh%
,而它会搜索%ab%
(在之前的请求中应该是这种情况)。
我想不出任何其他方式来解释这一点。我在这里缺少什么?
答案 0 :(得分:5)
使用keyup()代替keydown
keydown
Fires when the user depresses a key. It repeats while the user keeps the key depressed.
keyup
Fires when the user releases a key, after the default action of that key has been performed.
答案 1 :(得分:0)
使用Keyup
事件代替keydown
textbox.keyup(function(e) {...
keydown :用户按下某个键时触发。当用户按下键时,它会重复。 \ 的 KEYUP 强> 在用户释放密钥后,在执行该密钥的默认操作后触发。
有关详细信息,请参阅this。