2015-05-06 33 views
0
<form class="navbar-form navbar-right" role="search"> 
    <div class="form-group"> 
     <input id="search_text" type="search" class="form-control" placeholder="Search" size="30"> 
     <div class="form_control" id="search_info" style="width:283px;height:125px;top:86%;position:absolute;background-color:white; border: 1px solid #dce4ec;border-radius: 4px;display:none;"></div> 
    </div> 
    </form> 

$("#search_text").keypress(function(){ 
    if($("#search_text").val().length == 0) 
    { 
     $("#search_info").hide(); 
    } 
    else if($("#search_text").val().length != 0) 
    { 
     $("#search_info").show(); 
    } 
}); 

我的问题是,这个代码将只显示 $ 2号按键(“#search_info”) 。例如,如果我输入的搜索字段是 $(“#search_text”),$(“#search_info”)应该在第一次按下时显示,但它没有,当我多于一个字符进入搜索字段,然后显示$(“#search_info”)。jQuery的按键时第二次按下后认可

我似乎无法弄清楚。

+1

工作正常这里http://jsfiddle.net/bmcoutvb/ –

+0

这可能是Chrome,但我仍然只能看到它的第二个按键之后。 –

+1

尝试使用keyup,虽然它在多个浏览器中正常工作 – charlietfl

回答

1

使用keyup而不是keypress - 当按键触发时,该值尚未插入到输入中。

$("#search_text").keyup(function(){ 
    if($("#search_text").val().length == 0) 
    { 
     $("#search_info").hide(); 
    } 
    else if($("#search_text").val().length != 0) 
    { 
     $("#search_info").show(); 
    } 
}); 

http://jsfiddle.net/qxh3x2s6/

相关问题