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 :

Détection des touches


Sujet :

JavaScript

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut Détection des touches
    Sur ma page je souhaiterais qd il n'a y pas de focus sur un élèment du formulaire, qu'il puisse détecter quand on appuie sur la fleche gauche.

    J'ai réussi à le faire avec Jquery. Mais mon problème, c'est que si le curseur est dans le textarea ça fonctionne, or je ne veux pas.

    Comment faire ?

    Code html : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <html> 
    <head> 
    	<title>Test/title> 
     
    	<script type="text/javascript" src="/jscript/jquery-1.3.2.js"></script>
    	</head>
    <body>
    <script type='text/javascript'>
    jQuery.bind = function(object, method){
      var args = Array.prototype.slice.call(arguments, 2);  
      return function() {
        var args2 = [this].concat(args, $.makeArray( arguments ));  
        return method.apply(object, args2);  
      };  
    };  
     
     
     
    $(document).bind('keydown', $.bind(this, function(obj, event){
     
     
    if (event.keyCode == 37){
     alert('prev');
     }
     
    if (event.keyCode == 39){
    alert('next');
     }
     
     })); 
    </script>
     
    <textarea rows="30" cols="90" name="description"></textarea>
     
    </body>
    </html>

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Oh là oh là, pourquoi tu touches à jQuery.bind ? Tu fous par terre tous les mécanismes d’optimisation du framework. Et un conseil aussi : arrête les alert() et mets-toi à la console, maintenant tous les navigateurs en ont une (installe Firebug si t’es sous FF).

    Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $(document).keydown(function( event ) {
        if (event.target.name != 'description') {
            // remplacer name par id si besoin
            console.log(event.which);
        };
    });

    De plus, j’ai l’impression que tu confonds les attributs name et idname sert à identifier les données de formulaires qui seront envoyées au serveur, alors que id sert à marquer un élément unique pour le manipuler avec les scripts et les styles.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut
    Yes merci !

    Maintenant j'ai plusieurs textarea et des select.
    Y a-t-il une fonction simple où dois-je mettre tout les noms ?

  4. #4
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Eh bien tu peux jouer avec tagName, mais attention, il renvoie tout en majuscules. C’est pour une raison historique, je suppose…
    Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
    if (event.target.tagName != 'SELECT' && event.target.tagName != 'TEXTAREA')

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

Discussions similaires

  1. Detection des touches enfoncées par API
    Par Ingham dans le forum VB 6 et antérieur
    Réponses: 31
    Dernier message: 20/02/2006, 13h30
  2. Détection des disques physiques et logiques
    Par TheBigMac dans le forum Assembleur
    Réponses: 3
    Dernier message: 10/06/2004, 22h08
  3. [JEditorPane]Captures des touches claviers
    Par splend_f dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 17/05/2004, 15h57
  4. [DirectInput] Gestion des touches en mode fenêtré
    Par Harry_polin dans le forum DirectX
    Réponses: 8
    Dernier message: 19/03/2003, 18h50
  5. Cherche Nom des touches du clavier
    Par juan64 dans le forum C++Builder
    Réponses: 8
    Dernier message: 23/07/2002, 20h11

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