jquery (o js puro) simula la tecla Intro presionada para realizar pruebas

Resuelto morgancodes asked hace 14 años • 2 respuestas

¿Cuál es la mejor manera de simular que el usuario presiona "enter"? $(element).keypress() no parece permitirme pasar la tecla real que se presionó.

Esto es para pruebas unitarias.

morgancodes avatar Jul 19 '10 01:07 morgancodes
Aceptado

Demostración aquí

var e = jQuery.Event("keypress");
e.which = 13; //choose the one you want
e.keyCode = 13;
$("#theInputToTest").trigger(e);
redsquare avatar Jul 18 '2010 19:07 redsquare

Para aquellos que quieran hacer esto en javascript puro, miren:

Usando KeyboardEvent estándar

Como comenta Joe, KeyboardEvent es ahora el estándar.

Mismo ejemplo para disparar una entrada (código de clave 13):

const ke = new KeyboardEvent('keydown', {
    bubbles: true, cancelable: true, keyCode: 13
});
document.body.dispatchEvent(ke);

Puede utilizar esta página para ayudarle a encontrar el evento de teclado correcto.


Respuesta obsoleta :

  • initKeyboardEvent para IE9+, Chrome y Safari
  • initKeyEvent para Firefox

Puedes hacer algo como (aquí para Firefox)

var ev = document.createEvent('KeyboardEvent');
// Send key '13' (= enter)
ev.initKeyEvent(
    'keydown', true, true, window, false, false, false, false, 13, 0);
document.body.dispatchEvent(ev);
Fabien Sa avatar Sep 21 '2013 21:09 Fabien Sa