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 :

Menu contextuel avec récupération de la valeur du champ cliqué


Sujet :

JavaScript

  1. #1
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut Menu contextuel avec récupération de la valeur du champ cliqué
    Bonjour,

    Je souhaite faire un menu contextuel, jusque là pas de problème, il y a tout ce qu'il faut sur le forum.

    Mais et c'est là que tout se complique, est-il possible que le menu contextuel ne s'affiche que si on est sur un champ avec "id" et de récupérer la valeur de ce champ;

    Exemple :
    HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <input type="text" name=" champ" value="1234" id="coucou">RDV  DUPONTEL Claire</input>
     
    <div id="menu" style="display:none; position:absolute; border:outset 2px whitesmoke; background-color:whitesmoke;padding: 5px;font-family:verdana;font-size:11px;">
    	<li>choix 1</li/>
    	<li>choix 1</li/>
    	<li>choix 2</li/>
    	<li>choix 3</li/>
    </div>
    Javascript :

    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
    33
    34
    35
    36
     
    // Fonction de SpaceFrog
    function on(e){
    m=document.getElementById("menu").style;
     
    var mouseY =(document.all)? window.event.x:e.screenX; 
    var mouseX =(document.all)? window.event.y:e.screenY-200; 
     
    if(e){
       if(e.which>1){
          m.display="block";
          m.top=mouseX+"px";
          m.left=mouseY+"px"
          return false;
       }
       else{
          m.display="none";
       };
    }
    else {
       if(m.display=="block" && event.type=="click"){
          m.display="none";
       }
       else if(event.type!="click"){      
          m.display="block"
          m.top=mouseX+"px";
          m.left=mouseY+"px"
     
       };
       return false
    }
     
    }
     
    document.onclick=on;
    document.oncontextmenu=on;
    Le menu contextuel, je souhaiterai qu'il s'affiche que si on est sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name=" champ" value="1234" id="coucou">RDV  DUPONTEL Claire</input>
    Et qu'il récupère la valeur 1234

    Merci d'avance

  2. #2
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    J'ai trouvé un moyen, ce n'est pas encore la panacé.

    Récupération de ou des valeurs du formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script type="text/javascript">
    function menu(champ0, champ1)
    {
    	document.getElementById('ici').value=champ0.value+" - "+champ1.value ;
    } 
    </script>
    Mon formulaire :

    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
    <input type="hidden" id="coucou0" value="1234">
    	<input type="text" name="toto" class="entry" value="DUPONTEL Claire" id="coucou" 
    	onmouseover="menu(document.getElementById('coucou0'), document.getElementById('coucou'))">RDV  DUPONTEL Claire</a>
    	<input type="hidden" id="coucou3" value="1235">
    	<p><input type="text" name="toto" class="entry" value="DELANOE Béatrice" id="coucou1" 
    	onmouseover="menu(document.getElementById('coucou3'), document.getElementById('coucou1'))">RDV  DELANOE Béatrice</a></p>
    	<input type="hidden" id="coucou5" value="1236">
    	<p><input type="text" name="toto" class="entry" value="DELALANDE Alix" id="coucou2" 
    	onmouseover="menu(document.getElementById('coucou5'), document.getElementById('coucou2'))">RDV  DELALANDE Alix</a></p>
     
    <div id="menu" style="display:none; position:absolute; border:outset 2px whitesmoke; background-color:whitesmoke;padding: 5px;font-family:verdana;font-size:11px;">
    	<li><input type="text" name="tata" id="ici" disabled="disabled"></li/>
    	<li><a onclick="alert(getElementById('ici').value)">choix 1</a></li/>
    	<li>choix 2</li/>
    	<li>choix 3</li/>
    </div>
    Le script d'affichage du menu lui ne change pas.

    Ce n'est as la panacé, parceque si je fais un clic droit n'importe où, il prend la valeur de mon dernier input.

    Il ne faudrait pas que je puisse faire clic droit si je ne suis pas un champ de type "input" par exemple.

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

Discussions similaires

  1. [Article] Créer un menu contextuel avec jQuery
    Par RideKick dans le forum jQuery
    Réponses: 10
    Dernier message: 07/12/2011, 18h43
  2. Bug survol d'un menu contextuel avec la souris, dans IE
    Par Chekov dans le forum Silverlight
    Réponses: 2
    Dernier message: 28/01/2010, 09h46
  3. [AC-2007] Menu contextuel avec images access intégrées
    Par Filou07 dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/01/2010, 08h17
  4. Menu contextuel avec des couleurs
    Par ESVBA dans le forum Excel
    Réponses: 4
    Dernier message: 23/09/2008, 08h28
  5. Menu contextuel avec les API
    Par guen dans le forum Access
    Réponses: 6
    Dernier message: 14/09/2006, 23h42

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