2010-10-15 34 views

Respuesta

51

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

Creo que el evento HTML5 input también se activará.

+20

solo 'oninput' se activa cuando se hace clic en las flechas 'arriba' y 'abajo'. –

+2

pero en cambio solo se activa el desenfoque, al menos en Firefox. Supongo que tendremos que buscar presionar la tecla. – andho

+0

onchange y oninput ambos funcionaron en Opera, pero solo oninput funcionaría en Chrome (y solo cuando devolviera false desde el controlador de eventos; de lo contrario, Chrome activaría repetidamente el evento oninput) –

3

El evento onchange se desencadena pero el evento oninput se desencadena a medida que escribe. ¿Tal vez le gustaría poner un temporizador en el evento oninput y disparar su evento onchange cuando el usuario ha dejado de escribir por un segundo?

5

me encontré con que onkeyup y onchange cubierto todo en Chrome 19. Esta maneja la entrada directa de valor, hasta pulsación de tecla de flecha hacia abajo, haciendo clic en los botones de desplazamiento y la rueda del ratón.

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

El enlace del evento mousewheel por separado fue menos exitoso. El evento se activó demasiado pronto, antes de que se actualizara el valor del campo. Por lo tanto, siempre proporcionó el valor anterior del campo

+0

Esto también es cierto para Firefox. –

28

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

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

Agregue 'cambio' a eso también y es perfecto. Igual querrás escuchar los cambios externos en él también, y no hay nada de malo en agregarlo de todos modos. –

+0

Y también 'mousewheel' si desea retomar los eventos de desplazamiento dentro del campo de entrada. –

+1

Tenga en cuenta que '.bind()' ahora está en desuso en favor de '.on()' –

0

Hay una prevención del cambio current bug in Edge o la entrada de disparar al utilizar las teclas de flecha en un número de entrada.

Cuestiones relacionadas