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 :

Detection touche entrée sous FF


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 49
    Points : 44
    Points
    44
    Par défaut Detection touche entrée sous FF
    coucou,

    voila je veux détecter la touche entrée sur IE et FF j'ai donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var nKeyCode ;
    	if (navigator.appName.substring(0,1)=='M'){
    		nKeyCode = window.event.KeyCode ;
    	}else{
    		nKeyCode = keyStroke.which ;
    	}
    		if (nKeyCode == 13) {.....}
    Mais ca ne fonctionne pas g essayer aussi avec event.wich à la place de KeyStroke.which et event['KeyCode'] Mais rien n'y fait....

    ca ne fonctionne ni sous IE ni sous FF.
    si je laisse juste un if(window.event.KeyCode==13) ca fonctionne sous IE...

    Edit :
    Ce javascript est dans un fichier.js et je l'appel depuis mon html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <DIV  CLASS="time2"  STYLE="position:absolute; left:122px; top:34px; width:100px; height:30px; z-index:0; " END="indefinite"  ONKEYPRESS="e0.onKeyPress(2)"><INPUT ID="obj0p3" STYLE=" FONT-FAMILY:Arial; COLOR:RGB(0, 0, 0); BACKGROUND-COLOR:RGB(255, 255, 255); FONT-SIZE:18pt;width:100;height:30; border-width:0;" TYPE=text ></INPUT></DIV>
    merci d'avance
    Sophe

  2. #2
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut Re: Detection touche entrée sous FF
    Citation Envoyé par la.sophe
    coucou,

    voila je veux détecter la touche entrée sur IE et FF j'ai donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var nKeyCode ;
    	if (navigator.appName.substring(0,1)=='M'){
    		nKeyCode = window.event.KeyCode ;
    	}else{
    		nKeyCode = keyStroke.which ;
    	}
    		if (nKeyCode == 13) {.....}
    Mais ca ne fonctionne pas g essayer aussi avec event.wich à la place de KeyStroke.which et event['KeyCode'] Mais rien n'y fait....

    ca ne fonctionne ni sous IE ni sous FF.
    si je laisse juste un if(window.event.KeyCode==13) ca fonctionne sous IE...

    merci d'avance
    Sophe
    Pour firefox, il faut faire un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var keyCode = event.charCode ? event.charCode : event.keyCode;
    Tu es sur de la façon dont tu accedes à l'évenement?

  3. #3
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    bonjour,

    sous Firefox il faut transmettre les événements de façon explicite (comme pour Netscape)

    voici un exemple qui fonctionne sous IE et Firefox
    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
    18
    19
    20
    21
    22
    23
     
    <html>
    <head>
    <title></title>
     
    <script type="text/javascript">
    <!--
    function Clavier(ev)
    {
     var code = ev.keyCode;
     if (code==13)
        alert("Vous avez appuyé sur la touche Entrée !");
    }
     
    //-->
    </script>
     
    </head>
     
    <body onkeyup="Clavier(event)">
    &nbsp;
    </body>
    </html>
    autres exemples :
    http://www.developpez.net/forums/viewtopic.php?t=460397

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 49
    Points : 44
    Points
    44
    Par défaut
    ok mais la fonction est explicite le hic c'est que FF me répond :
    event is not defined.

    Alors que je suis dans un doc HTML et que j'appelle la fonction qui est dans un fichier js lié je vois pas comment faire.

    Même si je lui précise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('obj0p3').event.which == 13
    ca ne passe pas. (même erreur) je lui passe pourtant explicitement la.

  5. #5
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par la.sophe
    ok mais la fonction est explicite le hic c'est que FF me répond :
    event is not defined.
    Tu peux nous montrer la fonction? et la façon dont tu l'appelles?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 49
    Points : 44
    Points
    44
    Par défaut
    l'appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <DIV  CLASS="time2"  STYLE="position:absolute; left:122px; top:100px; width:100px; height:30px; z-index:0; " END="indefinite"  ><INPUT ID="obj0p1" ONKEYPRESS="e0.onKeyPress(0)" TYPE=text ></INPUT></DIV>
    e0 c'est l'objet qui contient l'ensemble des réponses. et (0) c'est pour préciser le numéro de l'input.

    (ce sont des pages HTML générées automatiquement par un logiciel donc c'est un peu le fouilli)

    la fonction JS :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    ...
    this.onKeyPress = formOnKeyPress;
    ...
     
    function formOnKeyPress(choiceNo) { // choiceNo = 0 dans cet exemple
    	if (navigator.appName.substring(0,1)=='M'){	 
    		if (window.event.keyCode == 13) {
    		   if (this.isAutomatic) {
    				var p = this.propositions[choiceNo];
    				if (p.isEnabled) {
    				   this.lastActivatedChoiceNo = choiceNo;
    				   p.setFired(true);
    				   this.evaluate();
    				}
    			}
    		}
    	}else{
    		if (event.which == 13) {
    		   if (this.isAutomatic) {
    				var p = this.propositions[choiceNo];
     
    				if (p.isEnabled) {
    				   this.lastActivatedChoiceNo = choiceNo;
    				   p.setFired(true);
    				   this.evaluate();
    				}
    			}
    		}
    	}
     
    }
    [/quote]

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 49
    Points : 44
    Points
    44
    Par défaut
    ok résolu :

    en fait on a rajouter un parametre dans notre appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ONKEYPRESS="e0.onKeyPress(2,event)"
    et dans la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function formOnKeyPress(choiceNo, evt) { // num2
    	if (navigator.appName.substring(0,1)=='M'){	 
    		if (evt.keyCode == 13) {
    		...
    			}
    		}
    	}else{
    		if (evt.which == 13) {
    		...
    			}
    		}
    	}
     
    }
    apparement FF n'arrivait pas à faire la correspondance avec le event directement dans la fonction.

    merci de votre aide !

  8. #8
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par la.sophe
    l'appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <DIV  CLASS="time2"  STYLE="position:absolute; left:122px; top:100px; width:100px; height:30px; z-index:0; " END="indefinite"  ><INPUT ID="obj0p1" ONKEYPRESS="e0.onKeyPress(0)" TYPE=text ></INPUT></DIV>
    Donc c'est bien ce qu'on t'a dit, dans Firefox, il faut préciser l'évenement dans l'appel de la fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ONKEYPRESS="function(event){e0.onKeyPress(event,0)}"
    puis la déclaration de la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function formOnKeyPress(event,choiceNo) {
      if(!event&&window.event) {
        event=window.event;
      }
      ..... // la variable event contient ton évenement dans tous les navigateurs connus.
    }

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

Discussions similaires

  1. Touche entrée dans input.onkeydown sous IE8 (jqGrid)
    Par loukoum82 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 18/06/2012, 15h26
  2. Touche entrée sous word 2007
    Par Doriane08 dans le forum Word
    Réponses: 2
    Dernier message: 28/12/2011, 17h55
  3. Touche entrée et formulaires sous chrome
    Par yenox dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/07/2010, 12h33
  4. Pas de validation du form par la touche Entrée : sous IE uniquement
    Par Rose95 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 08/12/2009, 11h16
  5. detecter touche entrée
    Par popogendarme dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/03/2007, 17h56

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