Инициируйте событие на `click` и` enter` - PullRequest
69 голосов
/ 05 февраля 2012

У меня на сайте есть окно поиска. В настоящее время пользователи должны нажать кнопку «Отправить» рядом с полем для поиска по сообщению jquery. Я бы хотел, чтобы пользователи также нажимали ввод для поиска. Как я могу это сделать?

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 ]

98 голосов
/ 05 февраля 2012

Используйте событие 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
        }
    });

});

Демо

50 голосов
/ 22 декабря 2013

Вы вызываете обоих слушателей событий, используя .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);
      });
    }
  });
});
5 голосов
/ 05 февраля 2012

Примерно так будет работать

$('#usersSearch').keypress(function(ev){
    if (ev.which === 13)
        $('#searchButton').click();
});
2 голосов
/ 05 февраля 2012
$('#form').keydown(function(e){
    if (e.keyCode === 13) { // If Enter key pressed
        $(this).trigger('submit');
    }
});
1 голос
/ 12 марта 2018

Вы можете использовать ниже событие нажатия клавиши при загрузке документа.

 $(document).keypress(function(e) {
            if(e.which == 13) {
               yourfunction();
            }
        });

Спасибо

1 голос
/ 05 февраля 2012
$('#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
}
0 голосов
/ 05 февраля 2012

Взгляните на функцию keypress .

Я считаю, что клавиша enter имеет значение 13, поэтому вам нужно что-то вроде:

$('#searchButton').keypress(function(e){
    if(e.which == 13){  //Enter is key 13
        //Do something
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...