J’essaie de déclencher un événement lorsqu’une certaine touche est enfoncée. Cela fonctionne bien avec ce code:
$(document).keypress(function(e){ switch(e.which){ case 96:$("a.quicklinks").sortinggger('click'); break; }
Mais si l’utilisateur est dans un champ de formulaire, j’aimerais désactiver ce comportement. Comment tester si l’utilisateur tape dans un champ de formulaire pour le faire? Merci.
$(document).keypress(function(e) { if ($(e.target).is('input, textarea')) { // event invoked from input or textarea } ... });
Peut-être que vous pouvez définir une variable globale
var disable_keyevents = false; $('textarea,input') .focus(function() { disable_keyevents = true }) .blur(function() { disable_keyevents = true; });
il vous suffit ensuite de vérifier la valeur de disable_keyevents dans l’événement $ (document) .keypress avant le commutateur.
Ce code se déclenche lorsque l’utilisateur appuie sur le caractère ASCII n ° 96 dans votre formulaire. Vous pouvez l’utiliser pour désactiver / modifier le “code par défaut” de cette touche.
$('#my_form_field').live('keypress', function(e) { if (e.keyCode == 96) { e.preventDefault(); // Do stuff. } });