2009-05-08 3 views
1

Je me suis fatigué d'écrire une fonction pour vérifier le code de clé avec javascript. Cela fonctionne bien pour Firefox mais pas IE. Est-ce que quelqu'un sait ce qui ne va pas avec mon code? Veuillez voir ci-dessous le code pour plus de détails.Vérification du code de clé en Javascript ne fonctionne pas pour IE

function textCheck(e) 
{ 
var e = window.event || e 
alert("CharCode value: "+e.charCode) 
alert("Character: "+String.fromCharCode(e.charCode)) 
} 
+1

Veuillez ajouter votre site d'appel afin que nous puissions voir comment vous appelez cette fonction. –

Répondre

3

commutateur votre première ligne de code:

...

var e = e || window.event; 

...

et voir si cela aide.

En outre, si elle est un caractère unicode essayer quelque chose comme ce qui suit:

function displayunicode(e) { 
    var unicode=e.keyCode? e.keyCode : e.charCode 
    alert(unicode) 
} 

Si vous manipulez keydown au lieu de keypress, alors les choses deviennent un peu plus complexe ... Voir: http://unixpapa.com/js/key.html

1

Les valeurs keyCode et charCode se comportent légèrement différemment selon les navigateurs et renvoient des valeurs différentes pour divers événements. Les anciennes versions d'IE en particulier ne supportent pas charCode. La première suggestion que j'ai est d'utiliser un outil comme jQuery pour gérer la normalisation des valeurs clés à travers les navigateurs. Avec jQuery, vous pouvez utiliser la propriété e.which sur l'objet événement pour obtenir la valeur normalisée.

L'autre chose à faire est d'utiliser un vérificateur de code pour comparer les valeurs renvoyées pour chaque événement pour chaque navigateur. Je construit un outil en ligne pratique pour le faire et l'a trouvé extrêmement utile pour montrer tous les keycodes/charCodes pour chacun des événements en bref:

http://www.west-wind.com/WestwindWebToolkit/samples/Ajax/html5andCss3/keycodechecker.aspx

rend vraiment facile d'expérimenter différentes combinaisons de touches et voir comment ils se comparent sur différents navigateurs. Ce qui est la clé de jQuery et qui a tendance à être celle qui fonctionne le plus régulièrement.

Questions connexes