Me gustaría saber qué tecla de carácter se presiona en una forma compatible con varios navegadores en javascript puro.¿Cómo saber qué tecla de carácter se presiona?
Respuesta
"Borrar" JavaScript:
<script type="text/javascript">
function myKeyPress(e){
var keynum;
if(window.event) { // IE
keynum = e.keyCode;
} else if(e.which){ // Netscape/Firefox/Opera
keynum = e.which;
}
alert(String.fromCharCode(keynum));
}
</script>
<form>
<input type="text" onkeypress="return myKeyPress(event)" />
</form>
JQuery:
$(document).keypress(function(event){
alert(String.fromCharCode(event.which));
});
esto funciona bien para los caracteres alfabéticos, pero ¿qué pasa con los puntos/los brakets y otros símbolos tipográficos? – VoVaVc
@VoVaVc: Funciona para aquellos también. Lo más importante es usar el evento 'keypress', que le da un código de carácter, en lugar de' keyup' o 'keydown', que le da un código de tecla. –
'e.which' está en desuso. Use 'e.key' en su lugar, como en' if (e.key == 'z') ' – aljgom
Tener un vistazo a este sitio para navegadores inconsistencias http://www.quirksmode.org/js/keys.html
Sólo en el evento de pulsación de tecla en algunos navegadores (especialmente no en Firefox). –
@Tim Buen punto - en realidad lo eliminaré. – Matt
Uso ésta:
function onKeyPress(evt){
evt = (evt) ? evt : (window.event) ? event : null;
if (evt)
{
var charCode = (evt.charCode) ? evt.charCode :((evt.keyCode) ? evt.keyCode :((evt.which) ? evt.which : 0));
if (charCode == 13)
alert('User pressed Enter');
}
}
hay un millón de copias de esta pregunta aquí, pero aquí va de nuevo de todos modos:
document.onkeypress = function(evt) {
evt = evt || window.event;
var charCode = evt.keyCode || evt.which;
var charStr = String.fromCharCode(charCode);
alert(charStr);
};
La mejor referencia sobre los acontecimientos clave que he visto es http://unixpapa.com/js/key.html.
**check this out**
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(document).keypress(function(e)
{
var keynum;
if(window.event)
{ // IE
keynum = e.keyCode;
}
else if(e.which)
{
// Netscape/Firefox/Opera
keynum = e.which;
}
alert(String.fromCharCode(keynum));
var unicode=e.keyCode? e.keyCode : e.charCode;
alert(unicode);
});
});
</script>
</head>
<body>
<input type="text"></input>
</body>
</html>
¿No es este un duplicado casi exacto de la respuesta de @ Coyod en 2009? –
Una de mis librerías favoritas para hacer esto de una manera sofisticada es Mousetrap.
Viene equipado con una variedad de complementos, uno de los cuales es el complemento record
que puede identificar una secuencia de teclas presionadas.
Ejemplo:
<script>
function recordSequence() {
Mousetrap.record(function(sequence) {
// sequence is an array like ['ctrl+k', 'c']
alert('You pressed: ' + sequence.join(' '));
});
}
</script>
<button onclick="recordSequence()">Record</button>
Cierto. Hará. –
@DanLowe Acabo de agregar un fragmento. –
más reciente y mucho más limpia: event.key
utilizar. ¡No más códigos de números arbitrarios!
node.addEventListener('keydown', function(event) {
const key = event.key; // "a", "1", "Shift", etc.
});
Si desea hacer seguro que se introducen caracteres individuales solamente, compruebe key.length === 1
, o que es uno de los caracteres que se pueden esperar.
document.onkeypress = function(event){
alert(event.key)
}
- 1. Cómo detectar si se presiona alguna tecla
- 2. ¿Cómo saber qué tecla SHIFT se presionó?
- 3. UITextField Cómo comprobar si se presiona una tecla de borrar
- 4. ¿Cómo puedo saber si se presiona el cambio usando RawInput?
- 5. ¿Cómo saber si .keyup() es una tecla de carácter (jQuery)
- 6. ¿Cómo puedo saber cuándo se presiona la tecla Intro en un cuadro de texto?
- 7. ¿Cómo saber si se presiona Shift en un evento MouseDown?
- 8. ¿Cómo se presiona la última tecla de flecha usando maldiciones?
- 9. Averigüe la tecla presionada de carácter
- 10. cómo detectar cuando una tecla de acceso directo (tecla de acceso directo) se presiona
- 11. ¿Por qué el Rectángulo de enfoque no se muestra hasta que se presiona la tecla Tab?
- 12. Reproducir un sonido cuando se presiona una tecla
- 13. Cómo capturar una tecla "Listo" presiona desde el teclado virtual
- 14. ¿Cómo puedo saber a qué funciones se llama cuando se presiona un botón en la consola de Chrome?
- 15. ¿Cómo saber el siguiente carácter alfabéticamente?
- 16. El botón predeterminado en JFrame no se activa cuando se presiona la tecla enter
- 17. ¿Cómo puedo verificar si se presiona una tecla durante el evento click con jQuery?
- 18. JSF: ¿cómo enviar el formulario cuando se presiona la tecla enter?
- 19. Flex 4 detectar si el usuario presiona la tecla enter
- 20. ¿Cómo saber qué aplicación JAXB se utiliza?
- 21. ¿Cómo saber qué recurso drawble se usa?
- 22. ¿Cómo saber qué variable de Union se usa?
- 23. Una función de devolución de llamada cada vez que se presiona una tecla (independientemente de qué ventana tenga el foco)?
- 24. ¿Se presiona la tecla Detectar Shift sin usar eventos en Windows Forms?
- 25. Cómo saber cuándo se presiona el botón Atrás en una UINavigationControllerStack
- 26. android: acción del teclado de pantalla cuando se presiona la tecla Listo
- 27. Llamar a un botón específico en el evento Click cuando se presiona la tecla enter C#
- 28. Mantener el teclado suave abierto cuando se presiona la tecla enter
- 29. Mate todas las actividades cuando se presiona la tecla HOME android
- 30. Formulario onSubmit determinar qué botón de envío se presiona
no son todas estas respuestas para la pregunta "¿qué _was_ tecla pulsada?" ¿Qué pasa si, mientras se está ejecutando, el código de JavaScript quiere saber si una tecla en el teclado se mantiene presionada actualmente? – mwardm
'event.key' le dará directamente el carácter presionado – Gibolt