2013-06-13 1 views
1

im ayant une légère question, en essayant de trouver la valeur programme keycode d'un caractère. C'est ce que j'ai en ce moment.comment trouver la valeur de code de touche de caractère dans javascript

var delimiter = ','; 

//some where down the page 

control.keyup(function(e) 
{ 
    var key = delimiter .charCodeAt(0); 
    if(e.keycode == key) 
    { 
     //do something 
    } 
} 

Alors, quand j'appuyez sur la « » sur la touche du clavier a une valeur de 44 tout est e.keycode 188. Comment connaître la valeur keycode du delimiter variable?

+0

@KevinBowersox Lorsque j'appuie sur la touche ',' de mon clavier, je veux que le code e.keycode corresponde à mon délimiteur. – c11ada

+0

Pour référence, le 'keyCode' de', '(sur ma machine) est' 188'. –

Répondre

2

L'événement keyup retourne un code d'activation pas un code ASCII. vous pouvez retreive le code ASCII Si vous passez à l'événement keypress. Cela devrait correspondre à la valeur reçue par charCodeAt qui renvoie la valeur unicode d'un caractère, ce qui arrive à aligner avec le code ASCII pour les 128 premiers caractères. Voir ce reference.

var delimiter = ','; 
var key = delimiter.charCodeAt(0); 
document.getElementById("test").onkeypress = function(e){ 
    if((e.keyCode || e.which) == key){ 
     alert("Cat's out of the bag! OHHH YEAH!"); 
    } 
}; 
+0

est-ce pas un code d'activation différent à un charCode? Alors, comment pouvez-vous comparer 'charCodeAt (0)' à e.keyCode'? –

+0

@PaulS. Cela dépend de l'événement que vous utilisez, en gros 'charCodeAt' fournit la valeur ASCII. Ensuite, le raccourci clavier et le clavier fournissent un code clé spécifique au navigateur, tandis que l'appui sur une touche donne ASCII. –

+2

@ PaulS.ce fut également utile http://www.asquare.net/javascript/tests/KeyCode.html – c11ada

Questions connexes