0

I have the following jQuery code placed against a search bar input text box:

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

Its a bit glitchy. Results are populating correctly, but for example on some occasions I have to execute a space after I type my query for the results to populate.

Any feedback would be greatly appreciated.

4

1 に答える 1

0

あなたが求めている質問はjQueryだと思います-キーダウン/キープレス/キーアップENTERKEY検出

との両方を考慮してみてkeyupください。keydownenter

$(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に関するのリストを探していた場合は、このリソースe.whichを参照できます。

于 2013-06-02T02:35:43.650 に答える