2017-09-14 6 views
0

J'apporte un popup quand le bouton F2 est pressé mais le problème est quand j'appuie sur le bouton Q le popup arrive. Ma première pensée a été son problème avec mon clavier, donc j'ai essayé dans un système différent, le résultat était le même. Puis j'ai fait un test code, juste pour m'assurer qu'il n'y a pas de bug dans mon code, mais il donne aussi le même résultat. Ceci est mon exemple de codeLe code clé du bouton "Q" et "F2" venant même

<html> 
 
\t <head> 
 
\t \t <script> 
 
\t \t \t function giveFocusToRespectiveQuantity(evt) { 
 
\t \t  \t var charCode = (evt.which) ? evt.which : evt.keyCode; 
 
\t \t  \t alert(charCode); 
 
\t \t \t } 
 
\t \t </script> 
 
\t </head> 
 
\t <body> 
 
\t \t <input type="text" onkeypress="return giveFocusToRespectiveQuantity(event)"> 
 
\t </body> 
 
</html>

Comme vous pouvez le voir quand F2 et Q sont pressés l'charcode est le même pour les deux. Pourquoi donc?

Ces liens disent que le code clé pour Q est 81

  1. Javascript Char Codes (Key Codes)
  2. KeyboardEvent Value (keyCodes, metaKey, etc)
+0

Si vous restez avec 'event.which' seulement, puis' F2' donne 0 et 'Q' 113 – Vivick

Répondre

1

utilisation onkeydown »ou 'onkeyup' au lieu. car onkeypress ne détecte que les clés autorisées, pas les touches de contrôle.

par exemple:

<input type="text" onkeydown="return giveFocusToRespectiveQuantity(event)"> 

retours 113 pour F2 et 81 pour les touches q/Q.