2010-08-10 193 views
2

按鍵觸發後我有這些代碼按鈕單擊事件使用jQuery

$('#search-button').keypress(function (e) { 
    if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {    
     search(); 
    }; 
}); 

$('#search-button').bind('click', function() { 
    search(); 
}); 

搜索模塊我有一個警告,現在每當我時,按確認按鈕處於焦點時,搜索(下)下點擊事件也觸發。請幫忙。謝謝。

+1

它使'搜索()'兩個呼叫? – Reigel 2010-08-10 08:04:17

回答

4

按回車確實觸發了按鍵事件 - 但也觸發按鈕的'點擊'事件,所以你得到兩次搜索。

您不需要爲輸入密鑰添加處理程序。

0

爲什麼你把keypress事件放在按鈕上?按輸入就會觸發click事件。您可能需要將keypress事件放在文本輸入上,或將其完全放下。

+0

我必須這樣做的一個原因是因爲輔助功能標準只需要鍵盤導航。使用Chrome和Firefox時,Enter鍵註冊爲「點擊」。但它不是 – yannicuLar 2018-01-12 17:13:19

0
$(document).on('keypress',function(e) { 
    if (e.keyCode == 13 || e.which == 13) { 
     var identifier = e.target.id; 
     console.log(e.target.id); 
     $('#' + identifier).click(); 
    } 
}); 
2
$(document).ready(function(e) { 
$('form').bind('keypress', function(event){ 
    if(event.keyCode == 13) 
    { 
    event.preventDefault(); 
    $("#submitcat").click(); 
    } 
}); 
$("#submitcat").click(function(){ 
alert("Ok");  
}); 
}); 
+0

只是傾銷一些(嚴重縮進)的代碼沒有回答這個問題。請編輯以添加真實的答案,並請修復代碼佈局。 – 2013-10-26 17:08:42