Partage
  • Partager sur Facebook
  • Partager sur Twitter

Envoi d'un formulaire avec la touche entrée

Sujet résolu
    30 novembre 2005 à 14:44:58

    Bonjour,

    Je galère avec un script qui doit piurtant pas être très compliqué mais qui me prend la tête :s

    je voudrais envoyé le contenu de la case de saisie sans avoir à appuyé sur le bouton mais directement en appuyant sur la touche entrée mais jme prend la tête dessus depuis je sais pas combien de temps :s


    <form onsubmit="ecrire()">
    <input type="text" id="votreSaisie" name="votreSaisie" />
    <input type="submit" value="Envoyer!">
    </form>

    mais le pb c'est qu'il veut envoyé les données par l'url et en plus il n'appel pas la fonction :(
    • Partager sur Facebook
    • Partager sur Twitter
      30 novembre 2005 à 14:57:05

      Remplace <form onsubmit="ecrire()"> par <form onsubmit="return ecrire()">.

      Ensuite, fait en sorte que ta fonction ecrire() fasse un return true; ou return false; selont la validation (ou non) du formulaire.


      Bisous
      • Partager sur Facebook
      • Partager sur Twitter
        30 novembre 2005 à 15:13:40

        sa ne marche malheureusement pas :(
        • Partager sur Facebook
        • Partager sur Twitter
          30 novembre 2005 à 18:26:42

          Citation : Fieldset

          sa ne marche malheureusement pas :(


          Chez moi non plus. Je suis débutant en javascript et je bloque sur ce point :/
          • Partager sur Facebook
          • Partager sur Twitter
            30 novembre 2005 à 18:44:34

            Je vois pas trop où vous avez un problème, ça marche niquel :
            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
            <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
                    <head>
                            <title>test onsubmit</title>
                           
                            <script type="text/javascript">
                                    // <![CDATA[
                                    function init_evenements()
                                            {
                                            // Ajout des évènements aux éléments
                                            document.forms['ecrire'].onsubmit = verif;
                                            }
                                           
                                           
                                    function verif()
                                            {
                                            // this représente le formulaire
                                            if (this.votreSaisie.value == 'salut')
                                                    return true;
                                            else
                                                    return false;
                                            }
                                   
                                    window.onload = init_evenements;
                                    // ]]>

                            </script>
                           
                    </head>
                   
                    <body>
                            <form id="ecrire" action="onsubmit.htm" method="post">
                                    <p>
                                            <input type="text" id="votreSaisie" name="votreSaisie" /><br />
                                            <input type="submit" value="Envoyer!">
                                    </p>
                            </form>
                    </body>
            </html>



            Bisous
            • Partager sur Facebook
            • Partager sur Twitter
              30 novembre 2005 à 23:21:53

              Je viens de tester ton code et cela ne fonctionne pas... (Je suis sous firefox 1.5)

              Puis je voudrais que la page ne se rafraichisse pas lors de l'appel de la fonction javascript or dans ce cas là le formulaire envoie les données par get ou post ce qui implique un reload de la page... :(
              • Partager sur Facebook
              • Partager sur Twitter
                1 décembre 2005 à 3:17:14

                Je n'aurais pas mis ici quelque chose que je n'aurais pas testé (d'ailleur, je l'ai fait pour toi).

                De plus, j'utilise également firefox 1.5 (et internet explorer aussi).
                Il marche.

                Si tu en veux la preuve, remplace le "post" par un "get" et tu verras que la ligne en haut change, preuve que le contenu a été envoyé.


                Pour ce que tu veux faire ensuite, tu dois utiliser de l'AJAX.


                Bisous
                • Partager sur Facebook
                • Partager sur Twitter
                  1 décembre 2005 à 7:50:07

                  Effectivement il fonctionne, mais mon principal problème est que je ne veux absolument pas que sa rafraichisse la page et je suis justement en train d'utiliser de l'ajax... lol

                  Je vais essayer de tourner ma question autrement lol, je veux pouvoir écrire du texte dans un type="text" puis envoyer ce texte à une fonction javascript mais sans avoir obligatoirement besoin de cliquer sur le bouton d'envoi mais en appuyant sur la touche "entrée" (un peu comme dans n'importe quel t'chat) et je voudrais également que la page ne rafraichisse pas lors de l'envoi des données, donc pas d'envoi des données via la method GET ou POST car elles impliques obligatoirement un refresh de la page.

                  Merci de m'aider Gamer_man :)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    1 décembre 2005 à 9:12:03

                    Citation : Gamer_man

                    Je n'aurais pas mis ici quelque chose que je n'aurais pas testé (d'ailleur, je l'ai fait pour toi).

                    De plus, j'utilise également firefox 1.5 (et internet explorer aussi).
                    Il marche.

                    Si tu en veux la preuve, remplace le "post" par un "get" et tu verras que la ligne en haut change, preuve que le contenu a été envoyé.


                    Pour ce que tu veux faire ensuite, tu dois utiliser de l'AJAX.


                    Bisous



                    Justement, c'est ce que j'utilise. Donc, je ne veux pas que la page se recharge mais qu'on puisse valider le forumulaire en appuyant sur entrée (oui oui je suis chiant ^^ ). La tentation serait d'utiliser ton code sans mettre de paramètre "action", mais je doute que ça soit valide :/
                    Enfin bon, j'essaye quand même et je vous tiens au courrant ;)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      1 décembre 2005 à 9:36:15

                      Je n'ai jamais prétendu faire ton script, hein, je ne fais que te mettre sur la voie...

                      Bisous
                      • Partager sur Facebook
                      • Partager sur Twitter
                        1 décembre 2005 à 18:50:05

                        Oui mais là tu ne me met pas du tout sur la (bonne) voie lol car ce que tu me dis est contraire à ce que je tente justement de faire :(
                        • Partager sur Facebook
                        • Partager sur Twitter
                          1 décembre 2005 à 19:42:21

                          Citation : Titre

                          Envoi d'un formulaire avec la touche entrée



                          Je crois que j'y réponds, pourtant.



                          Bisous
                          • Partager sur Facebook
                          • Partager sur Twitter
                            1 décembre 2005 à 21:49:26

                            Je suis pas sur mais je crois que "Envoi d'un formulaire avec la touche entrée" n'est pas une question ^^.
                            Ma question est posée lègerement plus bas et j'ai apporté des précisions tout au long de la discussion.

                            Bref si tu ne peux pas répondre à ma question ou que tu ne peux pas m'aider ce n'est pas grave, je vais continuer de chercher de mon côté.

                            Merci quand même
                            • Partager sur Facebook
                            • Partager sur Twitter
                              1 décembre 2005 à 22:12:48

                              Et bien, y à déjà eu des réponses au sujet d'AJAX dans d'autres topics plus bas.


                              Bisous
                              • Partager sur Facebook
                              • Partager sur Twitter
                                1 décembre 2005 à 23:01:25

                                Je crois que tu n'as pas compris ma question lol laisse tomber
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  2 décembre 2005 à 0:20:16

                                  Et bien, je vois pas ce que tu ne comprends pas.
                                  Tu envois un return false pour que le formulaire ne soit pas envoyé, et tu gères ce que tu as besoin avec de l'AJAX à côté.

                                  Si le visiteur à désactivé le JavaScript, et bien, l'action du formulaire par défaut est utilisée.



                                  Bisous
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    2 décembre 2005 à 7:54:25

                                    Bon attend lol je vais recommencer mon explication :)

                                    imagine un tchat avec sa case de saisie et son bouton "envoyer". Lorsque tu écris un message la plupart du temps tu tappe "entrée" pour l'envoyer tu ne te prend pas la tête à utiliser ta souris pour cliquer sur le bouton... eh bien je voudrais faire la même chose sauf que quand j'envoi le message en appuyant sur la touche "entrée" je voudrais que ce bouton fasse appell à une fonction javascript se trouvant dans la même page. (Donc si je fait appel à une fonction Javascript je n'ai pas besoin de GET ou de POST; est ce que tu comprends ce que je veux dire ? :s)

                                    Et c'est cette fonction javascript qui récupèrera le contenu de la case de saisie et qui s'occupera de la transmettre à une page php via l'ajax.

                                    J'espère que j'ai été plus explicite et plus compréhensible :s
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      2 décembre 2005 à 9:30:27

                                      J'imagine que tu n'as pas lu mon dernier message, c'est exactement ce que je disais.


                                      Bisous
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        2 décembre 2005 à 15:28:33

                                        Soit je vois pas ce que tu veux dire soit ce que tu me dis ne répond pas du tout à ma question alors au lieu de tourner autour du pot : t'a pas un exemple concret à me montrer ? :s

                                        Merci

                                        EDIT :

                                        Voici le code que j'ai :
                                        <script>
                                        function affiche(message)
                                                {
                                                alert(message);
                                                }
                                        </script>

                                        <form name="search" onSubmit="return affiche(this.string.value);">
                                        <input name="string" type="text">
                                        <input type="submit" value="Rechercher">
                                        </form>


                                        Et après avoir affiché la variable dans la fenetre alert la page s'actualise et la variable s'inscrit dans l'url :(
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          3 décembre 2005 à 12:20:24

                                          Elle retourne rien, ta fonction affiche.
                                          Ps : onSubmit = invalide xhtml


                                          Bisous
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            3 décembre 2005 à 12:55:17

                                            je m'en fou de ce qu'elle retourne mdr tant que sa marche mdr

                                            Puis en ce qui concerne la validitée xhtml sa m'est égal lol :)
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              14 décembre 2005 à 1:48:59

                                              Bien sur, que dire, il est inutile de bien coder
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                14 décembre 2005 à 21:01:32

                                                Le problème étant résolu depuis un bon moment, c'était vriament inutile de répondre.. c'est vraiment parler pour ne rien dire...
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  15 décembre 2005 à 12:53:12

                                                  <form name="search" onSubmit="return affiche(this.string.value);"> return sous entends que le resultat retourné par la fonction affiche doit être "true" pour valider le formulaire. Hors, tu ne fais qu'afficher une alerte ! Rajoute un "return true" à ta fonction affiche() ou bien enlève le "return" devant affiche(), là celà sera correct.. Bîsous
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    15 décembre 2005 à 21:13:41

                                                    Mdr j'ai DEJA résolu mon pb!
                                                    Le dernier code affichée n'est pas celui que j'ai utilisé je l'ai modifié mais je ne l'ai pas affiché ici.
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      18 décembre 2005 à 22:13:19

                                                      peux-tu l'afficher stp?!
                                                      se serais gentil...
                                                      merci
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        18 décembre 2005 à 22:20:25

                                                        <script>
                                                        function affiche(message)
                                                        {
                                                        alert(message);
                                                        return false;
                                                        }
                                                        </script>

                                                        <form name="search" onsubmit="return affiche(this.string.value);">
                                                        <input name="string" type="text">
                                                        <input type="submit" value="Rechercher">
                                                        </form>
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter

                                                        Envoi d'un formulaire avec la touche entrée

                                                        × 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