¿Alguien puede decirme cuál es la diferencia entre change
input
eventos y ?
Estoy usando jQuery para agregarlos:
$('input[type="text"]').on('change', function() {
alert($(this).val());
})
También funciona con input
lugar de change
.
¿Quizás alguna diferencia en el orden del evento en relación con el enfoque?
javascript
jquery
events
dom
Gabriel Petrovay
fuente
fuente
input
evento también captura el pegado. Ver stackoverflow.com/questions/15727324/…Respuestas:
Según esta publicación :
oninput
El evento ocurre cuando el contenido de texto de un elemento se cambia a través de la interfaz de usuario.onchange
ocurre cuando la selección, el estado verificado o el contenido de un elemento han cambiado . En algunos casos, solo ocurre cuando el elemento pierde el foco o al presionar return(Enter) y se ha cambiado el valor. El atributo onchange se puede utilizar con:<input>
,<select>
, y<textarea>
.TL; DR:
oninput
: cualquier cambio realizado en el contenido del textoonchange
:<input />
: cambiar + perder el enfoque<select>
opción: cambiarfuente
onchange
ocurre "cuando el elemento pierde el foco" mientras queoninput
ocurre en cada cambio de texto.onchange
también se activa cuando presiona Enter mientras aún enfoca.Se
change
event
activa en la mayoría de los navegadores cuando se cambia el contenido y se pierde el elementofocus
. Básicamente es un agregado de cambios. No disparará para cada cambio como en el casoinput
event
.Se
input
event
dispara sincrónicamente al cambiar el contenido del elemento. Como tal, el oyente de eventos tiende a disparar con más frecuencia.Los diferentes navegadores no siempre están de acuerdo sobre si se debe activar un evento de cambio para ciertos tipos de interacción
fuente
input
evento.La documentación de MDN tiene una explicación clara (no estoy seguro de cuándo se agregó):
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event
fuente