saber - javascript-detecta la tecla Ctrl presionada o arriba, el evento de pulsación de tecla no desencadena
keypress jquery ejemplos (3)
Veo algunas preguntas similares aquí (como JavaScript: compruebe si se presionó el botón CTRL ) pero mi problema es realmente el desencadenamiento del evento. Mi código js:
// Listen to keyboard.
window.onkeypress = listenToTheKey;
window.onkeyup = listenToKeyUp;
/*
Gets the key pressed and send a request to the associated function
@input key
*/
function listenToTheKey(e)
{
if (editFlag == 0)
{
// If delete key is pressed calls delete
if (e.keyCode == 46)
deleteNode();
// If insert key is pressed calls add blank
if (e.keyCode == 45)
createBlank();
if (e.keyCode == 17)
ctrlFlag = 1;
}
}
El evento se desencadena para cualquier otra tecla excepto la ctrl .
Necesito también activarlo para ctrl .
No puedo usar jQuery / prototype / whatever para que esas soluciones no sean aceptables.
Entonces ... ¿cómo puedo detectar el ctrl ?
Intenta usar if (e.ctrlKey)
.
Su evento tiene una propiedad llamada ctrlKey. Puede verificar esto para ver si se presionó la tecla o no. Consulte el fragmento a continuación para obtener más control, como las teclas.
function detectspecialkeys(e){
var evtobj=window.event? event : e
if (evtobj.altKey || evtobj.ctrlKey || evtobj.shiftKey)
alert("you pressed one of the ''Alt'', ''Ctrl'', or ''Shift'' keys")
}
document.onkeypress=detectspecialkeys
Usar onkeydown en lugar de onkeypress puede ayudar.
De http://www.w3schools.com/jsref/event_onkeypress.asp
Nota: El evento onkeypress no se activa para todas las teclas (por ejemplo, ALT, CTRL, SHIFT, ESC) en todos los navegadores. Para detectar solo si el usuario ha presionado una tecla, use el evento onkeydown en su lugar, porque funciona para todas las teclas.