2009-10-28 161 views
6

我正在使用e.which的jquery來運行按下ENTER鍵的功能,但是我希望只有在特定輸入字段被聚焦時才能調用此函數(其中光標閃爍)。e.which只有輸入字段焦點時才啓用ENTER鍵

我目前的jquery函數。 (「#search」)。click();我想那$(「#search」)。click();只有在#search_text重點或有一些輸入,因爲我有更多的輸入字段和用戶傾向於按回車,並在回車此功能被調用。

謝謝。

回答

9

我將事件偵聽器附加到特定的input元素:

$('#search_text').keyup(function(e) { 
    if (e.which == 13) { 
     // do it 
    } 
}); 
+1

我同意,但建議使用'keypress'事件,而不是'keyup'事件,因爲它會火更快,也可爲所有主流瀏覽器打印字符可靠的字符代碼。 – 2009-10-28 14:30:37

0

爲#search_text元素綁定事件,而不是整個文檔。這種方式只會在元素具有焦點時觸發。

1

只是你的第二個如果語句中這一行添加到您的函數:

$('#search_text').focus(function() 
-1

您還需要添加:e.preventDefault();

$('document').keyup(function(e) { 
    if (e.keyCode == '13') { 
    e.preventDefault(); 
    var page = $("#userpage").val(); 
    } 
}); 
+0

調用給出字符串「document」的jQuery不會將事件附加到文檔元素。您需要使用'$(document)',而不用引號。另外,當你調用'preventDefault()'時,所有後續的「默認」事件不會再被觸發。 – 2015-09-07 15:23:00

相關問題