0

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

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

它有点小故障。结果填充正确,但例如在某些情况下,我必须在键入查询后执行空格以填充结果。

任何反馈将不胜感激。

4

1 回答 1

0

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

尝试并计算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 回答