IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

keyCode qui ne fonctionne pas


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 21
    Par défaut keyCode qui ne fonctionne pas
    Bonjour à tous,

    J'ai un problème un peu space.
    Je n'arrive pas à détecter le keyCode des caractères spéciaux tapé sur un clavier car la fonction event.keyCode me renvoit tout le temps le key code des chiffres (non non ma touche maj n'a pas activée...)

    Le code ...
    var key_code=window.event.keyCode;
    alert(key_code);

    Exemple : pour le underscore, la fonction me renvoie tout le temps le key code 56 alors que c'est 95.

    Pour moi c'est insoluble ?!!
    > précision, je suis sous IE 6 / SP2

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 21
    Par défaut
    personne n'a une idée ?

  3. #3
    Membre chevronné Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Par défaut
    Le event.keyCode te permet de détecter la touche appuyée mais pas le caractère. Par exemple essaie de taper a et A, tu auras 65 pour les deux alors que ce n'est pas le même caractère.
    Si tu tapes 8 su ton pavé numérique, tu obtiens 104. Si tu tapes 8 en haut du clavier tu obtiens 56. Tu vois ce que je veux dire ?

    Précise dans quel but tu veux détecter l'appui sur _

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 21
    Par défaut
    Je sais que la fonction event.ketCode me permet de récupérer un chiffre qui correspond à un caractère.
    On peut affiche le caractère correspondant avec String.fromCharCode(key_code).

    En fait un client veut que des éléments d'une balise select soientt triés en live en tapant des lettres lorsque le focus est sur le select. Pour ça tout roule.
    Mon SEUL problème c'est que je n'arrive pas à détecter les caractères spéciaux et notament le underscore _ car la fonction keyCode me renvoie tout le temps le code du caractère 8 soit 56.

  5. #5
    Membre chevronné Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Par défaut
    Ce script suivant marche chez moi (tu devras peut-être l'adapter pour aller avec ton select ?)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <html>
    <head>
    <title> test </title>
     
    <script language="JavaScript">
    function boutona(e) {
    	var touche=(window.Event)?e.which:e.keyCode;//pour savoir s'il s'agit de Msie ou de Netscape
    	alert("Vous avez appuyé la touche "+"\" "+String.fromCharCode(touche)+" \"");
    }
    </script>
     
    </head>
    <body onKeyPress="boutona(event)">
     
    </body>
    </html>

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut
    as tu testé ? car il renvoie bien le 8 ou le _ en fonction du caractère choisi. Il fait la distinction, ce que apparemnt tu n'arrivais pas à faire. Eventuellemnt tu n'as plus qu'à tester avec une condition sur touche pour vérifier le caractere

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 21
    Par défaut
    oui en fait c'est tout simple quand la fonctiion est appelé sur le onkeydown d'une balise select, le keyCode bug et ne renvoie que les lettres majuscules même si caps lock et shift ne sont pas activé.
    Ex : pour m > j'ai M et pou _ j'ai 8

  8. #8
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut
    ta fonction ou celle dispo sur le lien ?

  9. #9
    Membre chevronné Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Par défaut
    Effectivement il y a un bug avec onkeyDown...
    Mais je viens de tester avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select name="test" onKeyPress="boutona(event)">
    et ça marche....

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 21
    Par défaut
    j'essaie

  11. #11
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut
    si ca peut aider j'ai aucun problème de mon coté.

    A mon avis ca viens peut etre de la conf de windows (si tu as windows) qui fait des "truc" bisar certaine fois selon la conf du clavier ou si tu as appuyé plein (8 je crois) de fois sur la touche MAJ.
    Si tu es sous un autre OS ca viens peut etre du navigateur sous cet OS (perso j'ai testé avec FF et IE ss windows)

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 21
    Par défaut
    Effectivement ça marche super bien !
    Merci beaucoup !
    En fait le fonction keyCode ne renvoie pas les mêmes valeurs si elle est appelée depuis un onkeydown ou onkeypress.
    Mais je ne vois pas du tout pourquoi ?

    > merci merci

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 21
    Par défaut
    Citation Envoyé par Mobius
    si ca peut aider j'ai aucun problème de mon coté.

    A mon avis ca viens peut etre de la conf de windows (si tu as windows) qui fait des "truc" bisar certaine fois selon la conf du clavier ou si tu as appuyé plein (8 je crois) de fois sur la touche MAJ.
    Si tu es sous un autre OS ca viens peut etre du navigateur sous cet OS (perso j'ai testé avec FF et IE ss windows)
    sou firefox il n'y a pas ce bug

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Code qui ne fonctionne pas sur Mac
    Par malbaladejo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/01/2005, 11h08
  2. [SQL] Requête à jointure qui ne fonctionne pas
    Par Bensor dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/12/2004, 16h10
  3. Jointure externe qui ne fonctionne pas
    Par Guizz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/02/2004, 12h26
  4. CREATEFILEMAPPING qui ne fonctionne pas???
    Par Jasmine dans le forum MFC
    Réponses: 2
    Dernier message: 06/01/2004, 19h33
  5. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo