2

J'ai un gestionnaire de touches sur une page Web affectée à l'élément body. Je veux vraiment qu'il soit actif n'importe où dans la page Web. Ou alors j'ai pensé. Les événements keypress dans les formulaires de saisie textuels activent également le gestionnaire de corps, ce qui est logique, mais que je ne veux pas.Exclusion des champs de formulaire du gestionnaire de touches affecté au corps

Idéalement, je voudrais conserver le gestionnaire de touches assigné à l'élément de corps et exclure en quelque sorte seulement les formes d'entrée. Est-il possible que je puisse arrêter l'événement au niveau d'entrée et l'empêcher de se propager au corps? (Ou est-ce même la bonne façon de regarder les événements DOM HTML?)

Répondre

6

Il serait plus simple de vérifier quel élément a déclenché l'événement dans votre gestionnaire keypress et filtrer les éléments d'entrée:

document.onkeypress = function(evt) { 
    evt = evt || window.event; 
    var target = evt.target || evt.srcElement; 
    if (!/INPUT|TEXTAREA|SELECT|BUTTON/.test(target.nodeName)) { 
     // Do stuff 
    } 
}; 
+0

Eh bien, c'était trop évident. Merci. – wfaulk

Questions connexes