Tengo una aplicación jQuery con un campo de texto de entrada que tiene eventos vinculados a él, de modo que si el usuario cambia el campo, otros campos relacionados se actualizan en consecuencia. Mi objetivo es hacer que los otros campos respondan a cada cambio de carácter. Inicialmente vinculé el evento keyup al campo que funciona bastante bien en un navegador de escritorio:
Esto parecía perfecto.
Sin embargo, noté, al probar en un navegador móvil, que si el usuario presiona con el dedo en el campo y selecciona pegar, el evento keyup no se activa. Esto no es sorprendente ya que no se usa un teclado en la interfaz móvil. Así que también vinculé el change al campo. Eso funcionó bien, pero el usuario aún tiene que "anular la selección" del campo después de pegarlo para que se active el evento de change . Mientras jugaba con las cosas, noté que incluso en el escritorio, si el usuario pega en el campo con el mouse (clic con el botón derecho> pegar), no se activan eventos hasta que se deselecciona el campo.
Nuevamente, mi objetivo es hacer que el campo responda mejor que esto para estos casos de uso (pasar mouse y pegar móvil en el campo). ¿Hay algún evento sin teclado al que pueda vincularme que se active cuando el usuario pegue en el campo antes de anular la selección del campo?
Gracias.
El evento input es lo que quiero. keyup change de teclado a input y el campo responde a cualquier cambio en el campo, ya sea a través del teclado, cambios a través del mouse o eventos de pantalla táctil. De este modo:
$("#id_name").on('input', function() { // Respond to the change in the field. });