javascript jquery mobile click keyup

javascript - jQuery: evento de keyup para dispositivo móvil



mobile click (4)

Tengo algunos problemas para que se active un evento de keyup en mi iPhone, mi código es el siguiente:

var passwordArray = ["word", "test", "hello", "another", "here"]; var test = document.getElementById(''enter-password''); test.addEventListener(''keyup'', function(e) { if (jQuery.inArray(this.value, passwordArray) != -1) { alert("THIS IS WORKING"); } else {} });

La idea es que a medida que el usuario escribe en el campo #enter-password , cuando coinciden con una palabra en la passwordArray activará la alerta. Esto funciona en el escritorio, por ejemplo, una vez que haya ingresado la word la función se activará de inmediato tan pronto como haya escrito d . ¿Hay alguna forma de hacer que esto funcione también para dispositivos móviles?


Debe agregar un evento de entrada. Funciona tanto en dispositivos móviles como en computadoras.


El evento de toque se desencadena cuando se elimina un punto de contacto del dispositivo.

https://developer.mozilla.org/en-US/docs/Web/Events/touchend

Puede pasar eventos keyup y touchend al método .on () jQuery (en lugar del método keyup ()) para activar su código en ambos eventos.

test.on(''keyup touchend'', function(){ //code });


Hay tres eventos que puede usar (pero debe tener cuidado de cómo los "combina"):

  • keyup : funciona en dispositivos con teclado, se activa cuando sueltas una tecla (cualquier tecla, incluso teclas que no muestran nada en la pantalla, como ALT o CTRL);

  • toque : funciona en dispositivos con pantalla táctil, se activa cuando quita el dedo / lápiz de la pantalla;

  • input : se activa cuando presiona una tecla "y la entrada cambia" (si presiona teclas como ALT o CTRL, este evento no se activa).

El evento de entrada funciona en dispositivos de teclado y con dispositivos de pantalla táctil, es importante señalar esto porque en la respuesta aceptada el ejemplo es correcto pero aproximado:

test.on(''keyup input'', function(){ }

En dispositivos basados ​​en teclado, esta función se llama dos veces porque se activarán tanto la entrada de eventos como la entrada de teclado .

La respuesta correcta debería ser:

test.on(''keyup touchend'', function(){ }

(la función se llama en el teclado para computadoras de escritorio / portátiles O en el teléfono inteligente para teléfonos móviles)

o simplemente puedes usar

test.on(''input'', function(){ }

pero recuerde que el evento de entrada no será activado por todas las teclas (CTRL, ALT & co. no activará el evento).


Puede agregar evento de entrada. Es un evento que se activa cada vez que cambia la entrada. La entrada funciona tanto en computadoras de escritorio como en teléfonos móviles

test.on(''keyup input'', function(){ //code });

Puede consultar esta respuesta para obtener más detalles sobre el evento de entrada jQuery