web-dev-qa-db-esp.com

jquery (o js puro) simular la tecla enter presionada para probar

¿Cuál es la mejor manera de simular al usuario presionando "enter"? $ (elemento) .keypress () no me permite pasar la tecla real que se presionó.

Esto es para pruebas de unidad.

54
morgancodes

Demo aquí

var e = jQuery.Event("keypress");
e.which = 13; //choose the one you want
e.keyCode = 13;
$("#theInputToTest").trigger(e);
86
redsquare

Para aquellos que quieren hacer esto en javascript puro, mire:


Desactualizado :

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);

Actualizado :

Como Joe lo comentó, KeyboardEvent ahora es el estándar.

Mismo ejemplo para disparar un enter (keyCode 13):

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

Puede usar esta página ayudarlo a encontrar el evento de teclado correcto.

51
Fabien Sa