触发“click”和“enter”上的事件

时间:2012-02-05 03:19:54

标签: jquery jquery-selectors

我的网站上有一个搜索框。目前,用户必须单击该框旁边的提交按钮才能通过jquery的帖子进行搜索。我想让用户也按Enter进行搜索。我怎么能这样做?

JQUERY:

$('document').ready(function(){
    $('#searchButton').click(function(){
        var search = $('#usersSearch').val();
        $.post('../searchusers.php',{search: search},function(response){
            $('#userSearchResultsTable').html(response);
        });
    });
});

HTML:

<input type='text' id='usersSearch'  /><input type='button' id='searchButton' value='search' />

7 个答案:

答案 0 :(得分:97)

keypress文本框中使用usersSearch事件,然后查找 Enter 按钮。如果按下输入按钮,则触发搜索按钮单击事件,该事件将执行其余工作。试试这个。

$('document').ready(function(){
    $('#searchButton').click(function(){
        var search = $('#usersSearch').val();
        $.post('../searchusers.php',{search: search},function(response){
            $('#userSearchResultsTable').html(response);
        });
    })
    $('#usersSearch').keypress(function(e){
        if(e.which == 13){//Enter key pressed
            $('#searchButton').click();//Trigger search button click event
        }
    });

});

<强> Demo

答案 1 :(得分:49)

您使用.on()调用两个事件侦听器,然后在函数内部使用if

$(function(){
  $('#searchButton').on('keypress click', function(e){
    var search = $('#usersSearch').val();
    if (e.which === 13 || e.type === 'click') {
      $.post('../searchusers.php', {search: search}, function (response) {
        $('#userSearchResultsTable').html(response);
      });
    }
  });
});

答案 2 :(得分:5)

这样的东西会起作用

$('#usersSearch').keypress(function(ev){
    if (ev.which === 13)
        $('#searchButton').click();
});

答案 3 :(得分:2)

$('#form').keydown(function(e){
    if (e.keyCode === 13) { // If Enter key pressed
        $(this).trigger('submit');
    }
});

答案 4 :(得分:1)

$('#usersSearch').keyup(function() { // handle keyup event on search input field

    var key = e.which || e.keyCode;  // store browser agnostic keycode

    if(key == 13) 
        $(this).closest('form').submit(); // submit parent form
}

答案 5 :(得分:1)

您可以在文档加载时使用下面的按键事件。

var arr1 = new[] { "A", "B", "C" };
var arr2 = new[] { "D", "E" };
var arr3 = new[] { "F", "G" };

var result = CrossJoin(new List<string[]> { arr1, arr2, arr3 });
for(var i = 0; i < result.Count; i++) 
    Console.WriteLine(string.Format("{0}: {1}", i + 1, string.Join(",", result[i])));

由于

答案 6 :(得分:0)

查看keypress function

我认为enter密钥为13,因此您需要以下内容:

$('#searchButton').keypress(function(e){
    if(e.which == 13){  //Enter is key 13
        //Do something
    }
});