2010-09-15 7 views
4

J'essaie d'exécuter une méthode lorsque la touche Entrée a été enfoncée. Cette méthode est déjà utilisée par un bouton. Fondamentalement, lorsque l'utilisateur remplit un champ de texte et clique sur un bouton de soumission, il obtient une visionneuse. Ce que je veux faire est d'exécuter cette même action, mais quand la touche d'entrée a été pressée. Ive a examiné en utilisant .keypress mais je ne peux trouver des exemples où la balise de formulaire est une balise de formulaire html standard et pas un tag de forme asp.net. Je pense que pour l'instant le formulaire répond seulement aux contrôles .net sur la page et je ne peux pas surcharger cela avec la méthode jquery. Des idées?Exécution de la méthode Jquery lorsque vous appuyez sur la touche entrée

Répondre

5

Vous pouvez lier un événement keypress au document et trigger() au gestionnaire de votre bouton.

$(document).bind('keypress', function(e){ 
    if(e.which === 13) { // return 
     $('#buttonid').trigger('click'); 
    } 
}); 

Ceci se déclencherait chaque fois que vous appuyez sur la touche de retour de votre site. Vous voulez probablement que cela n'arrive que si quelqu'un utilise return dans votre formulaire de saisie. Vous devrez juste changer le selector de document à n'importe quel type de sélecteur qui correspond à votre contrôle.

Ref .: .trigger()

+0

Dang, Andy, je me sens comme si je vous courir tout le temps. Quand dormez-vous? =) – mkoistinen

+0

@mkoistinen: Je n'en ai jamais entendu parler, dis-m'en plus sur ce truc "sleep": p – jAndy

+0

Merci Andy! – PhilipP

1
$(document).keydown(function(e) { 
    // test for the enter key 
    if (e.keyCode == 13) { 
     // Do your function 
     myFunction(); 
    } 
}); 
1
$(".input_loginform").keypress(function(e){ 
    if (e.which == 13){ 
     e.preventDefault(); 
     alert("User pressed 'Enter' in a text input. sender form #"+this.form.id); 
     postlogin("#"+this.form.id); 
    } 
}); 
Questions connexes