Partage
  • Partager sur Facebook
  • Partager sur Twitter

[jQuery] dblclick

comment l'utiliser avec 2 paramétres

Sujet résolu
    22 décembre 2009 à 11:51:43

    Bonjour à tous,

    alors voila, j'ai des données dans un tableau html
    chaque données est entourée par un <label for="">
    et donc dans ma première colonne j'ai un bouton radio

    le processus normal est de sélectionner la ligne puis de cliquer sur le bouton submit en dessous.
    Mais mes utilisateurs veulent un raccourcie par double click

    pour éviter d'utiliser la balise ondbleclick, j'ai trouvé cette même fonction jQuery

    exemple: [source]
    $("p").dblclick( function() { alert("Hello"); } );
    

    <p>Hello</p>
    

    équivaut à:
    <p ondblclick="alert('Hello');">Hello</p>
    


    Mais dans mon cas, pour simuler le bouton submit, je dois changer un input (hidden) pour diriger correctement mon programme

    je dois faire ceci:

    document.forms[IdForm].elements['DbleClick'].value=ValueDbleClick;
    document.forms[IdForm].submit();
    


    avec comme paramétres:
    IdForm pour l'ID du formulaire
    ValueDbleClick pour changer mon input (hidden)

    Mon problème, c'est que je ne vois pas trop comment implémenter ce code dans mon code


    dans le tr ?
    dans les td ?
    dans les label ?

    et via un onclick? mais comment appeler cette fonction avec 2 arguments
    c'est peut-être ridicule comme question, mais je suis dans le mauvais chemin

    have fun
    • Partager sur Facebook
    • Partager sur Twitter
      22 décembre 2009 à 12:00:16

      J'ai pas trop compris l'histoire de l'input hidden, tu peux préciser ?
      • Partager sur Facebook
      • Partager sur Twitter
        22 décembre 2009 à 12:10:22

        Bah si j'ai bien compris, il faut que tu crées les événements ondblclick à la volée (en parcourant tous tes <tr> par exemple), et que tu assignes une fonction qui intègre ValueDbleClick et IdForm.
        • Partager sur Facebook
        • Partager sur Twitter
          22 décembre 2009 à 12:29:32

          exemple:
          <form id="form1">
          <table>
          <tr>
          <td><label><input type="radio" name="radio1" id="radio1" value="1">1</label>/td>
          <td><label for="radio1">data1</label></td>
          </tr>
          <tr>
          <td><label><input type="radio" name="radio1" id="radio2" value="2">2</label>/td>
          <td><label for="radio2">data2</label></td>
          </tr>
          </table>
          
          <input type="submit" name="BP1" />
          
          
          <table>
          <tr>
          <td><label><input type="radio" name="radio2" id="radio11" value="1">1</label>/td>
          <td><label for="radio11">data1</label></td>
          </tr>
          <tr>
          <td><label><input type="radio" name="radio2" id="radio12" value="2">2</label>/td>
          <td><label for="radio12">data2</label></td>
          </tr>
          </table>
          
          <input type="submit" name="BP2" />
          
          </form>
          


          Les deux tableaux sont différents
          on peut sélectionner un truc différents dans l'un et l'autre,
          mais suivant le bouton utilisé, on enverra la valeur du tableau 1 ou 2

          -> tout çà, çà fonctionne

          Mais comment implémenter la fonction double click et faire un submit
          - soit en simulant un des deux bouton
          - soit en ajoutant un input caché pour diriger au besoin le document

          <input type="hidden" name="DbleClick" />
          


          J'ai cru lire sur le net que la fonction ondbleclick ne fonctionnait pas bien sur tout les navigateurs
          et j'ai trouver jQuery qui faisait pareil

          menfin, j'écoute vos conseils
          • Partager sur Facebook
          • Partager sur Twitter
            23 décembre 2009 à 17:14:07

            je viens de déceler un conflit entre jQuery et d'autre librairie (en l'occurrence mootool), mais en résolvant ce probléme [source], çà ne change rien à mon double click via jQuery.

            Même si je met en dur les actions à effectuer dans mon ficheir script.js:
            $("tr").dblclick( function() {
            	document.forms['formu'].elements['DbleClick'].value='BP_read';
            	document.forms['formu'].submit();
            } );
            

            çà ne marche pas

            A moins que vous ayez une meilleure solution ?!
            • Partager sur Facebook
            • Partager sur Twitter
              23 décembre 2009 à 17:27:48

              T'aurais pas ta page online par hasard ? Parce que j'suis un peu perdu moi dans ton histoire là...
              • Partager sur Facebook
              • Partager sur Twitter
                23 décembre 2009 à 17:32:23

                dsl, c'est sur un réseau local:

                bon pour faire simple
                au lieu de sélectionner un bouton radio et ensuite de cliquer sur le bouton, je voudrais simuler ce produit lorsque je double clique sur le bouton radio (ou son label)

                je suis prêt à utiliser toute les méthodes
                • Partager sur Facebook
                • Partager sur Twitter
                  23 décembre 2009 à 18:05:56

                  Bon j'ai fait un code en partant du principe de base... Ca semble beaucoup plus simple que tu ne le croyais non ?

                  <?php
                  if(isset($_GET["choix"])) {
                    echo "<p>Vous avez choisi ".$_GET["choix"]."</p>";
                  }
                  ?>
                  <form id="test">
                  <label><input type="radio" name="choix" value="valeur1" /> Choix 1</label><br />
                  <label><input type="radio" name="choix" value="valeur2" /> Choix 2</label><br />
                  <label><input type="radio" name="choix" value="valeur3" /> Choix 3</label><br />
                  <label><input type="radio" name="choix" value="valeur4" /> Choix 4</label><br />
                  <input type="submit" />
                  </form>
                  
                  <script src="jquery-1.3.2.min.js"></script>
                  
                  <script>
                  
                  $(function() {
                    $('#test label').dblclick(function() {
                      $('#test').submit();
                    });
                  });
                  
                  </script>
                  
                  • Partager sur Facebook
                  • Partager sur Twitter
                    23 décembre 2009 à 19:35:04

                    Trés bien, c'est exactement ce que je veux.

                    Je sais pas si je pigerai un jour pourquoi mettre du script dans le header
                    et d'autre en dessous de la zone concerné dans le body

                    merci Golmote, je vais pouvoir le faire à ma sauce facilement

                    maintenant, avec ce code:
                    <html>
                    <head>
                    	<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
                    </head>
                    <body>
                    <?php
                    if(isset($_POST["choix1"]))  echo "<p>Vous avez choisi ".$_POST["choix1"]."</p>";
                    if(isset($_POST["choix2"]))  echo "<p>Vous avez choisi ".$_POST["choix2"]."</p>";
                    ?>
                    <form id="test" method="post">
                    <input type="radio" name="choix1" id="choix1" value="valeur1" /> <label for="choix1">Choix 1</label><br />
                    <input type="radio" name="choix1" id="choix2" value="valeur2" /> <label for="choix2">Choix 2</label><br />
                    <input type="radio" name="choix1" id="choix3" value="valeur3" /> <label for="choix3">Choix 3</label><br />
                    <input type="radio" name="choix1" id="choix4" value="valeur4" /> <label for="choix4">Choix 4</label><br />
                    <input name="BP_1" type="submit" />
                    
                    <br />
                    <br />
                    
                    <input type="radio" name="choix2" id="choix11" value="valeur11" /> <label for="choix11">Choix 11</label><br />
                    <input type="radio" name="choix2" id="choix12" value="valeur12" /> <label for="choix12">Choix 12</label><br />
                    <input type="radio" name="choix2" id="choix13" value="valeur13" /> <label for="choix13">Choix 13</label><br />
                    <input type="radio" name="choix2" id="choix14" value="valeur14" /> <label for="choix14">Choix 14</label><br />
                    <input name="BP_11" type="submit" />
                    </form>
                    
                    <script>
                    	$(function() {
                    		$('#test label').dblclick(function() {
                    			$('#test').submit();
                    		});
                    	});
                    </script>
                    </body>
                    </html>
                    

                    On a 2 tableaux, 2 bouton radio qui peuvent être cochés
                    si on utilise les boutons, il est facile de savoir ce que l'on veut récupérer
                    mais via le double click ???
                    • Partager sur Facebook
                    • Partager sur Twitter
                      23 décembre 2009 à 20:44:08

                      Tu fais deux form séparé . . .
                      • Partager sur Facebook
                      • Partager sur Twitter
                        23 décembre 2009 à 20:52:58

                        c'est possible, mais c'est pas ma philosophie
                        mais on verra bien au finale si mon idée est infructueuse

                        si on rajoute un champ de destination:
                        <input name="dest" type="hidden" />
                        


                        et modifier la fonction javascrip dans cette optique:
                        $(function() {
                        		$('#test label').dblclick(function() {
                        			document.forms['test'].elements['dest'].value=this.$('input[type="radio"]').name;
                        			$('#test').submit();
                        		});
                        	});
                        


                        je test depuis tout à l'heure mais je trouve pas comment récupérer le nom du BP radio sélectionné

                        edit: peut être un
                        document.forms['test'].elements['dest'].value=$(this).prev('input').name
                        

                        mais çà me revoit "undefined"
                        • Partager sur Facebook
                        • Partager sur Twitter
                          23 décembre 2009 à 21:39:42

                          Attends mais, pourquoi tu veux pas faire plusieurs formulaire ? Je comprend pas là.

                          Ta philosophie est de réinventé la roue ?
                          • Partager sur Facebook
                          • Partager sur Twitter
                            23 décembre 2009 à 21:50:14

                            qui te dit que je n'ai pas besoin de récupérer toute les infos pour les traiter, même si ce n'est pas ce que l'utilisateur à choisi

                            jvois pas ou est le probléme
                            du moment que ma requête est possible, mais je ne trouve pas la bonne syntaxe

                            sans vouloir te commander ;)
                            • Partager sur Facebook
                            • Partager sur Twitter
                              24 décembre 2009 à 0:40:14

                              Mais... déjà sans JavaScript, comment tu faisais pour savoir quel bouton a été utilisé pour valider le formulaire ? o_O

                              Bon sinon, pour récupérer la valeur que tu cherches, je pense qu'il faut que tu fasses un truc dans ce genre :

                              $('#test').find('input[name="dest"]:eq(0)').attr('value',$(this).nextAll('input[type="submit"]:eq(0)').attr('name'));
                              


                              C'est un peu bordélique... mais je vois que ça...
                              </code>
                              • Partager sur Facebook
                              • Partager sur Twitter
                                24 décembre 2009 à 0:54:21

                                Merci golmote,
                                je ne pense pas que j'aurais pu trouver tout seul
                                c'est exactement ce que je recherche pour aider les utilisateurs de mon appli

                                et pour répondre à ta question, je testait le bouton
                                je récupère toutes les infos et suivant le bouton activé je sais ce que je dois faire

                                au plaisir et encore merci pour ce petit cours de jQuery
                                • Partager sur Facebook
                                • Partager sur Twitter

                                [jQuery] dblclick

                                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                • Editeur
                                • Markdown