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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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

+ 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