2012-06-22 148 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

相关问题