2017-06-27 100 views
0

我試圖在用戶鍵入搜索字符串並點擊輸入時觸發事件。我不想在輸入失去焦點時觸發它(因爲這可能發生在用戶單擊其他按鈕進行搜索時)。無論當用戶點擊輸入但不是焦點丟失時觸發

$("#search-input input").val("").change(function() { 

$("#search-input input").val("").on('change', function() { 

觸發既當用戶鍵入的東西並點擊進入,而且當用戶點擊搜索框之外的東西。什麼是我想要做的正確觸發器?

+0

事實上,這確實是什麼,我試圖做的相反(它觸發,當我改變焦點,而不是當我按下回車鍵) – PurpleVermont

+1

你說得對。我誤解了問題的第二部分,因爲「兩者都觸發時......」 – mjw

+0

將它粘貼在表單中,並聽取提交內容,與大多數可以想象的場景一起使用,即使沒有javascript – adeneo

回答

1
$("#search-input input").val("").on("keypress", function(e){ 
    if(e.which==13){ 
    //handle it here. 
    } 
}); 
+1

謝謝,完美的作品。 (在每個按鍵上觸發似乎有點不雅和低效,但在其他方面沒有問題)。我很驚訝沒有一個「命名事件」用於在輸入中敲擊輸入按鈕。 – PurpleVermont

+0

像其他人提到的那樣,如果在您的用例中可以工作,則更有效的解決方案是綁定表單的提交事件。 – ry4nolson

1

您可以使用按鍵事件並檢查是否按下回車鍵。是這樣的:

$(document).on("keypress", "#search-input input", function(e) { 
    if (e.which == 13) { 
     //do some stuff 
    } 
}); 
相關問題