2010-08-10 151 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