70 votes

Déclencher un événement sur `click` et` enter`

J'ai une zone de recherche sur mon site qui. Actuellement, les utilisateurs doivent cliquer sur le bouton d'envoi en regard de la zone pour effectuer une recherche via le message de jquery. Je souhaite également que les utilisateurs appuient sur entrée pour effectuer une recherche. Comment puis-je faire ceci?

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' />
 

103voto

ShankarSangoli Points 45345

Utilisez keypress événement usersSearch zone de texte et rechercher touche Enter. Si le bouton Entrée est enfoncé, déclenchez l'événement de clic du bouton de recherche qui fera le reste du travail. Essaye ça.

 $('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
        }
    });

});
 

Démo

53voto

Gustavo Rodrigues Points 255

Vous appelez les deux écouteurs d'événement à l'aide de .on() puis utilisez un if dans la fonction:

 $(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);
      });
    }
  });
});
 

5voto

jopke Points 987

Quelque chose comme ça va marcher

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

2voto

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

0voto

nolt2232 Points 1372

Jetez un oeil à l' keypress fonction .

Je crois que la clé enter est 13 donc vous voudriez quelque chose comme:

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X