2012-06-22 177 views
2
$('#enter').click(function(){ 
     var query = $('#search').val(); 
     $('body').removeHighlight().highlight(query); 
    }); 

以上是我用於頁面即時搜索的代碼。我如何添加一個事件監聽器,以便當我點擊輸入時,只要按下Enter鍵,它就會自動觸發.click()函數,因此用戶不必手動點擊#enter元素。另外,如果我輸入它不會影響搜索字段的值。如果代碼是在jQuery中,這會很有幫助。當我按下回車鍵時,如何觸發事件?

+0

表單中的#「enter」元素? –

+0

您可能想要使用['keypress'](http://api.jquery.com/keypress/) – MilkyWayJoe

+2

將輸入包裹在「表單」中,然後綁定到表單的'submit'事件可能會更簡單替代方案(瀏覽器處理構成表單提交的衆多事件,包括按回車,按提交等)。 – cheeken

回答

3

你可以使用jquery上的keypress事件來觸發事件。

$('#enter').keypress(function (e){ 
    var code = (e.keyCode ? e.keyCode : e.which); 
    if(code == 13) { 
     var query = $('#search').val(); 
     $('body').removeHighlight().highlight(query); 
    } 
}); 
0

我假設你的意思是search文本框中輸入按。下面嘗試,讓我知道,如果這是你想要的東西,

$('#search').keydown(function (e) {  
    if (e.which == 13) { 
     e.preventDefault(); 
     $('#enter').click(); 
    } 
}); 

試着改變你的查詢功能類似下面,

$('#enter').click(function(){ 
    var query = $('#search').val(); 
    if ($.trim(query) != '') { 
     $('body').removeHighlight().highlight(query); 
    } 
}); 
+0

它不讓我輸入搜索字段 – PacoDev

+0

@PacoDev我的壞..檢查我的更新。 –

+0

現在可以使用,但如果留空,頁面會凍結。 – PacoDev

0

就像我在評論說,你可以使用keypress這樣

$('#search').keypress(function(event) { 
    if (event.which == 13) { 
     $('#enter').trigger('click'); 
    } 
}) 
+0

作品,但導致我的網頁,如果它是空白緩慢下來一擊輸入,甚至凍結頁面 – PacoDev

相關問題