89 votes

événement onchange pour l'entrée type="numéro"

Comment gérer un onchange pour <input type="number" id="n" value="5" step=".5" /> ? Je ne peux pas faire un keyup ou keydown , car l'utilisateur peut simplement utiliser les flèches pour modifier la valeur. Je voudrais le gérer chaque fois que cela change, pas seulement sur le flou, ce que je pense que l' .change() fait. Des idées?

143voto

JohnColvin Points 2211

Utilisez mouseup et keyup

 $(":input").bind('keyup mouseup', function () {
    alert("changed");            
});

http://jsfiddle.net/XezmB/2/

83voto

Flo Points 1137

L'événement oninput .bind('input', fn) ) couvre toutes les modifications des frappes de touches aux clics sur les flèches et au collage clavier/souris, mais n'est pas pris en charge dans IE <9.

 jQuery(function($) {
  $('#mirror').text($('#alice').val());

  $('#alice').on('input', function() {
    $('#mirror').text($('#alice').val());
  });
});
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input id="alice" type="number" step="any" value="99">

<p id="mirror"></p>

6voto

Kingsley Ijomah Points 193

Pour détecter quand la souris ou la touche sont enfoncées, vous pouvez également écrire :

 $(document).on('keyup mouseup', '#your-id', function() {                                                                                                                     
  console.log('changed');
});

3voto

AlienWebguy Points 42370
$(':input').bind('click keyup', function(){
    // do stuff
});

Démo : http://jsfiddle.net/X8cV3/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X