Quels événements un <input type = "number" /> déclenche-t-il lorsque sa valeur est modifiée?


Réponses:


73

change serait l'événement qui est déclenché lorsque la valeur du champ change.

Je pense que l'événement HTML5 inputse déclencherait également.


36
seulement oninputest tiré lorsque les flèches « haut » et « bas » sont cliqués.
N 1.1

2
mais onchange ne se déclenche que sur le flou, au moins dans Firefox. Je suppose que nous devrons rechercher la pression sur les touches.
andho

onchange et oninput fonctionnaient tous les deux dans Opera, mais seule oninput fonctionnerait dans Chrome (et seulement alors lorsque je retournais false du gestionnaire d'événements - sinon Chrome déclencherait à plusieurs reprises l'événement oninput)
Ian Oxley

2
changene se déclenche pas lorsque la valeur est saisie, uniquement lorsque les boutons sont cliqués (au moins sur Firefox).
Timmmm

5
inputest comme une fusion entrekeyup change
Thanh Trung

37

J'ai trouvé que pour jQuery, le code suivant couvrait la saisie au clavier, les modifications de la molette de la souris et les clics sur les boutons dans Chrome, ainsi que la saisie au clavier dans Firefox

$("input[type=number]").bind('keyup input', function(){
    // handle event
});

2
Ajoutez du «changement» à cela aussi et c'est parfait. Vous voudrez toujours écouter les modifications externes qui y sont apportées, et il n'y a aucun mal à l'ajouter de toute façon.
Matt Fletcher

Et aussi la «molette de la souris» si vous voulez récupérer les événements de défilement dans le champ de saisie.
Matt Fletcher

4
Notez que .bind()est désormais obsolète en faveur de.on()
Michael Hays

7

J'ai trouvé cela onkeyupet j'ai onchangetout couvert dans Chrome 19. Cela gère la saisie directe de la valeur, la touche fléchée haut en bas, en cliquant sur les boutons et en faisant défiler la molette de la souris.

onchangeseul serait suffisant dans Chrome, mais d'autres navigateurs qui ne rendent le champ que sous forme de zone de texte ont besoin de la onkeyupliaison, qui fonctionne parfaitement pour lire la nouvelle valeur.

Lier l' mousewheelévénement séparément a été moins réussi. L'événement s'est déclenché trop tôt - avant la mise à jour de la valeur du champ - et a donc toujours donné la valeur précédente du champ


Ceci est également vrai pour Firefox.
barfuin

5

L' onchangeévénement se déclenche sur le flou, mais l' oninputévénement se déclenche à mesure que vous tapez. Vous voudrez peut-être mettre un minuteur sur l' oninputévénement et déclencher votre onchangeévénement lorsque l'utilisateur a arrêté de taper pendant une seconde?


3

Il existe un bogue actuel dans Edge empêchant le changement ou l'entrée de se déclencher lors de l'utilisation des touches fléchées dans une entrée numérique.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.