使用jquery ajax进行自动提示总是会产生一个建议1击键

时间:2013-11-11 20:41:50

标签: javascript jquery ajax autosuggest

我正在尝试为搜索框编写自动提示功能。除了一个方面,它似乎在做我想要的一切。所有建议都是针对之前的击键而不是当前的(最新建议没有考虑最新的按键)。

我的Javascript / JQuery代码如下:

$('#searchBox').keypress(function() {
    if ($('#suggest').length < 1) {
        $('.search').append('<div id="suggest"></div>');
    }
    search_text = $('#searchBox').val();
    $.ajax({ url: '<?php echo base_url('home/get_suggestions'); ?>',
        data: {"search_text": search_text},
        type: 'post',
        async: 'false',
        success: function(data) {
            $('#suggest').html(data);
        }
    });
});
$('#searchBox').blur(function() {
    $('#suggest').remove();
});

任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:2)

尝试使用keyup事件。在keydown或keypress事件中,文本框具有&#34; previous&#34;值,而keyup事件有&#34; new&#34;值。

$('#searchBox').keyup(function() {
...
});