在执行空格之前,JQuery Keyup不会填充结果

时间:2013-06-02 02:21:43

标签: jquery events javascript-events onkeyup keyup

我在搜索栏输入文本框中放置了以下jQuery代码:

$(document).ready(function(){
    $("#q").keyup(function(event){
      event.preventDefault();
      $.post("newsearch.php",{q:$("#q").val()}, function(data){
         $("#inboxHolder").html(data);          
      });
   });
});     

它有点粗俗。结果正确填充,但是例如在某些情况下,我必须在输入要填充的结果的查询后执行空格。

非常感谢任何反馈。

1 个答案:

答案 0 :(得分:0)

我认为您提出的问题是jQuery - keydown / keypress /keyup ENTERKEY detection

尝试同时使用keyupkeydownenter

$(document).ready(function(){
    get_key_press();
});

function get_key_press()
{
    $("#q").keyup(function(e){ 
        handle_key_press(e);
    });
    $("#q").keydown(function(e){ 
        handle_key_press(e);
    });
}

function do_search(search_string)
{
    $.post("newsearch.php",{q:search_string}, function(data){
        $("#inboxHolder").html(data);
        can_search = true;
    });
}

//simple concurrency flag
var can_search = true;

function handle_key_press(e)
{
    if(can_search)
    {
        var code = e.which; // recommended to use e.which, it's normalized across browsers
        if(code==13)e.preventDefault();
        if(code==32||code==13||code==188||code==186)
        {
            can_search = false;
            do_search($("#q").val());
        }
    }
}

如果您关注keycodes的{​​{1}}列表,可以参考此resource