2010-04-14 5 views
5

Je reçois "La propriété 'charCode' d'un événement keydown ne doit pas être utilisée. "erreur dans firefox en utilisant jQuery. Mon code ressemble à ceci:Obtention "La propriété 'charCode' d'un événement keydown ne doit pas être utilisée La valeur est insignifiante" erreur dans jQuery

$("div#center-box div#empid-textbox input.id").keydown(function(e){ 
    key = e.which; 
    if(key===13){ 
     //do something; 
    }; 
}); 

Est-ce que quelqu'un sait comment remédier à cette erreur?

+1

Est-ce que cet * avertissement * ne se produit que dans la console d'erreur de Firefox? Voir les commentaires ici: http://api.jquery.com/event.which/. Peut-être par conception. –

+0

Notez qu'il existe une différence assez subtile mais énorme entre "error" et "warning". Celui-ci est * juste * un avertissement. Cela ne casse pas le code. Vous pouvez activer et désactiver les avertissements si cela vous dérange. – BalusC

+1

Désactiver les avertissements ne semble guère être la meilleure façon de gérer la situation. Le demandé a demandé comment FIXER l'avertissement pas comment cacher l'avertissement. – paullb

Répondre

4

FIXE !!!

On dirait que FF n'aime pas la fonction 'keydown' ... Je l'ai changé pour 'keypress' et ça marche parfaitement.

+3

-1 Seul le problème est que keypress refuse de travailler dans google chrome. Si j'utilise le clavier, mes scripts fonctionnent dans tous les navigateurs si je change pour keypress il ne fonctionne pas ainsi je n'utiliserais pas cette solution à moins que je code seulement pour firefox ou ne crée des solutions de contournement pour d'autres navigateurs. Puisque vous n'avez suggéré aucune alternative, je suis downvoting cette solution. – mhenrixon

+0

@CatZ - il ne semble pas que vous fournissiez beaucoup de solution ou suggériez des alternatives non plus. Donc, mon commentaire est au moins légèrement meilleur que le vôtre (malheureusement, je ne peux pas baisser le score d'un sous-titre). – sadmicrowave

4

Vérifiez le premier commentaire sur http://api.jquery.com/event.which/

J'ai trouvé le même comportement gênant en utilisant jQuery avec Firefox 3.6.3 1.4.2 ainsi. Le correctif pour moi était de supprimer "charCode" de la liste des attributs clonés à la ligne 1956 de jquery-1.4.2.js - cette liste contient les attributs à cloner de l'événement original dans le navigateur à un objet d'événement jQuery sur mesure est plus sain. La lecture de l'attribut "charcode" dans la procédure de clonage a semblé déclencher l'avertissement dans la console d'erreur. Le clonage de l'attribut réel, que ce soit « codeTouche » ou « charCode » semble être manipulé très bien si les lignes 1996-1998 sont changées à:

if (!event.which && ((originalEvent.charCode || originalEvent.charCode === 0) ? event.charCode : event.keyCode)) { 
    event.which = originalEvent.charCode || event.keyCode; 
} 

dire un clonage plus délicat de la propriété charCode si elle est présente.

+0

un mot sur où/comment appliquer ce même type de correctif à v1.6? J'ai essayé de remplacer la même section de code (lignes 3027-3029) avec votre solution et la touche, le keyup, et le keydown me donnent toujours le même avertissement original – sadmicrowave

Questions connexes