Retour au blog
avr. 2019·1 min de lectureTraduit par IA
Langue:DeutschEnglishFrançaisÖsterreichischKlingonian Version originale: Deutsch

Fire on enter

#absenden#enter#enterpress#javascript#keypress#submit

Un petit snippet JavaScript/jQuery qui déclenche une action dès que la touche Entrée est pressée dans un champ.

$("[fire-on-enter]").not('.fire-on-enter-bound').on("keypress", function(e) {
  if (e.which == 10 || e.which == 13) eval($(this).attr("fire-on-enter"));
}).addClass("fire-on-enter-bound");

Voici un exemple d'utilisation :

<input type="text" fire-on-enter="doSomething()">

À quoi sert fire-on-enter-bound ? J'utilise régulièrement Ajax pour recharger dynamiquement du contenu et des contrôles, puis je relance chaque fois le JavaScript pour lier l'événement keypress aux contrôles nouvellement chargés. Problème : les éléments déjà liés reçoivent alors un second keypress, et un seul appui sur Entrée déclenche la fonction deux fois. D'où la classe fire-on-enter-bound, ajoutée aux contrôles déjà liés, qui empêche de lier l'événement une deuxième fois.

Plus récentCentOS - L'essentiel du serveurPlus ancien« Cette version de l'app “Installer OS X Sierra” ne peut pas être vérifiée »