Je voudrais savoir quelle touche de caractère est pressée d'une manière compatible avec tous les navigateurs en javascript pur.Comment savoir quelle touche de caractère est enfoncée?
Répondre
JavaScript "Effacer":
<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));
});
cela fonctionne bien pour les caractères alphabétiques, mais qu'en est-il des points/brakets et autres symboles typogtaphic? – VoVaVc
@VoVaVc: Cela fonctionne aussi pour ceux-là. L'essentiel est d'utiliser l'événement 'keypress', qui vous donne un code de caractère, plutôt que' keyup' ou 'keydown' qui vous donne un code clé. –
'e.qui' est obsolète. Utilisez 'e.key' à la place, comme dans' if (e.key == 'z') ' – aljgom
Jetez un oeil sur ce site pour le navigateur cross incohérences http://www.quirksmode.org/js/keys.html
Seulement sur l'événement de pression de touche dans certains navigateurs (notamment pas Firefox). –
@Tim Bon point - en fait, je vais le retirer. – Matt
Utilisez celui-ci:
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');
}
}
Il y a un million de doublons de cette question ici, mais voilà à nouveau quand même:
document.onkeypress = function(evt) {
evt = evt || window.event;
var charCode = evt.keyCode || evt.which;
var charStr = String.fromCharCode(charCode);
alert(charStr);
};
La meilleure référence que je l'ai vu sur les événements clés est 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>
N'est-ce pas une copie quasi-exacte de la réponse de @ Coyod en 2009? –
Une de mes bibliothèques préférées pour faire ceci d'une manière sophistiquée est Mousetrap.
Il est livré avec une variété de plugins, dont l'un est le plugin record
qui peut identifier une séquence de touches enfoncées.
Exemple:
<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>
C'est vrai. Ça ira. –
@DanLowe Je viens d'ajouter un extrait. –
Plus récent et plus propre: utilisez event.key
. Plus de codes numériques arbitraires!
node.addEventListener('keydown', function(event) {
const key = event.key; // "a", "1", "Shift", etc.
});
Si vous voulez faire des caractères simples sont sûrs que sont entrés, vérifiez key.length === 1
, ou qu'il est l'un des personnages que vous attendez.
document.onkeypress = function(event){
alert(event.key)
}
- 1. Savoir si une touche est enfoncée, wxPython
- 2. Comment savoir quelle touche SHIFT a été enfoncée?
- 3. Détermination de la touche enfoncée
- 4. Détection lorsque la touche Maj est enfoncée
- 5. Mouvement continu lorsqu'une touche est maintenue enfoncée
- 6. Quelle touche a été enfoncée? Crochets pour clavier
- 7. elisp comment vérifier si la touche Shift est enfoncée
- 8. Comment vérifier si une touche a été enfoncée sous Linux?
- 9. Entrées en SDL (sur une touche enfoncée)
- 10. Comment déterminez-vous si un caractère nécessite que la touche Majuscule soit enfoncée pour être tapée?
- 11. Comment ce PHP savoir quelle touche tableau/valeurs à utiliser?
- 12. déclencher la fonction javascript lorsqu'une touche est enfoncée dans fckeditor
- 13. TinyMCE: listes imbriquées si l'onglet touche est enfoncée
- 14. La touche de détection de touche est enfoncée sans utiliser d'événements dans Windows Forms?
- 15. C#: Dans un événement KeyDown, que dois-je utiliser pour vérifier quelle touche est enfoncée?
- 16. comment faire la détection de page html enter touche enfoncée?
- 17. déterminer quelle touche est pressée
- 18. Comment intercepter une touche dure enfoncée dans un service?
- 19. Comment détecter que la touche fléchée est enfoncée en utilisant C sous Linux ou Solaris?
- 20. Touche de saisie enfoncée avec le clavier virtuel dans Android?
- 21. Transmettre l'événement de touche enfoncée à l'applet et l'arrêter propagation
- 22. Changer l'animation sur un MovieClip sur une touche enfoncée
- 23. Jquery: comment savoir quelle ligne est sélectionnée?
- 24. Comment savoir quelle variable de Union est utilisée?
- 25. Comment vérifier si la touche enfoncée était une touche fléchée dans Java KeyListener?
- 26. Définition de la valeur de la propriété lorsque la touche Supprimer est enfoncée dans PropertyGrid
- 27. Comment utiliser Ruby pour détecter si sous Windows Platform, la touche SHIFT ou ALT est enfoncée?
- 28. Comment vérifier si plus d'une touche est enfoncée à la fois?
- 29. VB.NET ComboBox - Nécessité de forcer un redessin lorsqu'une touche est enfoncée lors de la descente
- 30. Comment obtenir la touche enfoncée et mise en tableau dans JavaScript?
ne sont pas toutes ces réponses à la question "quelle touche enfoncée was?" Que se passe-t-il si, en cours d'exécution, le code javascript veut savoir si une touche du clavier est actuellement enfoncée? – mwardm
'event.key' vous donnera directement le caractère pressé – Gibolt