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 :

Simuler le keycode 13


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 13
    Points
    13
    Par défaut Simuler le keycode 13
    Bonjour à tous et toutes

    J'ai un petit soucis, et je pense que vous pouvez peut être me donner une piste.

    j'utilise un calendar, qui remplit une zone de texte avec la date sélectionnée par l'utilisateur, rien d'extraordinaire pour l'instant.

    cependant sur ce composant (la zone de texte) j'ai un évenement onenter, j'écoute les touches pressées et si le keycode est le 13, l'événement est déclencher.

    Ma question est la suivante : Comment simuler le fait que la touche entrée a été présser lorsque la popup du calendar se ferme.

    dans la fonction hideCalendar je dispose de l'id du champ texte.

    J'ai essayé de creer des événement à la volé (fire) mais j'ai réussie uniquement a créer des évenements dblclick et blur. je ne peux malheureusement pas modifier la nature de l'événement (contraintes ergonomiques).

    nb : j'utilise le framework jsf, myfaces, tomahawk. Navigateurs utilisés IE6 FF.

    Si quelqu'un a une idée ?

    Merci d'avance pour vos pistes.

    David BREYTON.

  2. #2
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 13
    Points
    13
    Par défaut
    J'arrive a obtenir ce que je veux sur ie mais pas sur ff

    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
     
    <html>
    <body >
    <a href="#" id="a1" onClick="IEFFOnKeyDown(event);">ici</a>
    <input type="texte" id="a2" onkeypress="onEnter(event);"/>
    <script language="JavaScript">
    function onEnter(event) {
      var key;
      key = window.event ? window.event.keyCode : event.which;
     
      if (key == 13) {
          alert("event called");      
      }
    }
     
    function IEFFOnKeyDown(evenement){ 
       el2 = document.getElementById("a2");
     
       window.event ?  window.event.keyCode = 13 : evenement.which;
      // ici est le problème which est uniquement un getter comment modifier
      // le  keycode sur FF.
     
       if(document.layers) {
          alert(evenement.which);
       }
       alert("appel de l'evenement");
       el2.onkeypress(evenement);
     
    } 
    </script>
    </body>
    </html>
    une idée ?
    merci.

  3. #3
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut,
    un bout de code qui peut te servir :

    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
    // IE
    if(document.attachEvent) {
    	document.attachEvent('onkeypress', processKeyPress);
    }
    // Gecko
    else if(document.addEventListener) {
    	document.addEventListener('onkeypress', processKeyPress, false);
    }
     
     
    function processKeyPress(evnt) {
    	var keyCode = 0;
    	// IE
    	if(evnt.keyCode)	{
    		keyCode = evnt.keyCode;
    	}
    	// Gecko
    	else if(evnt.charCode)	{
    		keyCode = evnt.charCode;	
    	}
    	if(keyCode == 13)	{
    		window.alert('trter');
    	}
    }
    Bye

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup Djakisback.

    En effet je ne connaissais pas event.charCode, l'événement était déja attaché à l'input, je n'ai donc pas eu besoin attachEvent ou Add...

    Merci en tout cas j'avais trouvé une autre manière de faire mais c'était pas trop "académique".

    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
     
    <html>
    <body >
    <a href="#" id="a1" onClick="IEFFOnKeyDown(event);">ici</a>
    <input type="texte" id="a2" onkeypress="onEnter(event);"/>
    <script language="JavaScript">
    function onEnter(event) {
      var key;
     
      key = window.event ? event.keyCode : (event.charCode != 0) ? event.charCode  : event.which;
     
      if (key == 13) {
          alert("event called");      
      }
    }
     
    function IEFFOnKeyDown(evenement){ 
       el2 = document.getElementById("a2");
       //simule que la touche entré a été pressée
      window.event ?  evenement.keyCode = 13 : evenement.charCode = 13;
      alert("appel de l'evenement");
      el2.onkeypress(evenement); 
    } 
    </script>
    </body>
    </html>

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

Discussions similaires

  1. Probleme Voyageur de Commerce - Recuit Simulé
    Par dinver dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 21/06/2009, 22h26
  2. Développpement d'une application de simulation .....
    Par dada5455 dans le forum OpenGL
    Réponses: 6
    Dernier message: 14/12/2003, 10h27
  3. simuler l'execution d'un message
    Par gaut dans le forum C
    Réponses: 14
    Dernier message: 24/07/2003, 23h01
  4. Simuler un coup de molette sur un memo...
    Par dynobremo dans le forum Composants VCL
    Réponses: 2
    Dernier message: 28/02/2003, 11h31
  5. Simulation de transmission de paquet entre différent réseaux
    Par MelloW dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 19h51

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