2015-05-06 30 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/

相關問題