¿Qué eventos dispara un <input type = “number” /> cuando se cambia su valor?


Respuestas:


73

change sería el evento que se dispara cuando cambia el valor del campo.

Creo que el evento HTML5 inputtambién se activará.


36
solo oninputse activa cuando se hace clic en las flechas "arriba" y "abajo".
N 1.1

2
pero onchange solo se dispara con desenfoque, al menos en Firefox. Supongo que tendremos que buscar la pulsación de teclas.
andho

onchange y oninput funcionaron en Opera, pero solo oninput funcionaría en Chrome (y solo entonces cuando devolví falso desde el controlador de eventos; de lo contrario, Chrome dispararía repetidamente el evento oninput)
Ian Oxley

2
changeno se activa cuando se escribe el valor, solo cuando se hace clic en los botones (al menos en Firefox).
Timmmm

5
inputes como una fusión entrekeyup change
Thanh Trung

37

Descubrí que para jQuery, el siguiente código cubría la entrada del teclado, los cambios de la rueda del mouse y los clics de botones en Chrome, y también manejaba la entrada del teclado en Firefox

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

2
Agregue 'cambio' a eso también y es perfecto. También querrá escuchar los cambios externos, y de todos modos no hay ningún daño en agregarlo.
Matt Fletcher

Y también 'mousewheel' si desea seleccionar eventos de desplazamiento dentro del campo de entrada.
Matt Fletcher

4
Tenga en cuenta que .bind()ahora está en desuso a favor de.on()
Michael Hays

7

encontre eso onkeyup y onchangecubrí todo en Chrome 19. Esto maneja la entrada de valor directa, presionar la tecla de flecha hacia arriba y abajo, hacer clic en los botones y desplazar la rueda del mouse.

onchangesolo sería suficiente en Chrome, pero otros navegadores que solo muestran el campo como un cuadro de texto necesitan el onkeyupenlace, que funciona perfectamente para leer el nuevo valor.

Vincular el mousewheelevento por separado tuvo menos éxito. El evento se disparó demasiado pronto, antes de que se actualizara el valor del campo, y por lo tanto, siempre dio el valor anterior del campo.


Esto también es cierto para Firefox.
barfuin

5

El onchangeevento se activa con el desenfoque, pero el oninputevento se activa a medida que escribe. ¿Quizás quieras poner un temporizador en el oninputevento y disparar tu onchangeevento cuando el usuario ha dejado de escribir por un segundo?


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.