Partage
  • Partager sur Facebook
  • Partager sur Twitter

Focus sur un textarea quand on clique sur un lien

Anonyme
    30 novembre 2005 à 18:52:53

    Bonjour tout le monde, comment allez-vous?
    :)

    J'ai un énorme problème!


    Bon en fait c'est juste un petit problème mais chuuut :p

    Bon allez parlons de javascript maintenant.
    Comme dit dans le tire, je souhaiterais que quand on clique sur un lien, le pointeur vienne se mettre dans un textarea ( après le texte s'il y en a déjà ).
    J'ai déjà essayé deux trois solutions comme:

    <a href="javascript:bbcode('[g][/g]')" onclick="focus(window.document.formulaire.textarea);">Gras</a>

    avec formulaire le nom de votre formulaire et textarea le nom du textarea ou de l'input ou l'on veux le focus

    Ou encore

    <a href="javascript:bbcode('[g][/g]')" onclick="onfocus(window.document.formulaire.textarea);">Gras</a>


    Mais visiblement je m'y prend mal :euh:
    Mon formulaire a la valeur "formulaire" pour name=" " et mon textarea a la valeur "textarea" pour name=" ", et pour la fonction bbcode, c'est juste une fonction qui ajoute ce qui se trouve entre parenthèse dans le textarea


    J'espère que vous pourrez aidez un petit débutant en javascript comme moi :D

    [edit]: J'ai trouvé :D
    Pour ceux que ça peut aider:
    onclick="window.document.formulaire.textarea.focus();"




    Aussi, je suis en train de chercher autre chose, je vous explique la situation qui est Désespérée. Voilà, donc j'ai plusieurs bouton qui en cliquant dessus m'ajoute divers choses dans mon textarea, pour la plupart des balises que j'ajoute, no-soucis j'ai réussi, seulement, la balise qui me donne les liens est plus gênante. En effet, j'aimerais que quand on clique sur le bouton pour ajouter un lien, une petite fenêtre apparraisse, pour que l'on y mette le lien qui sera ensuite transformée sous la syntaxe:
    [a=http://siteduzero.com][/a]


    En cliquant sur le bouton pour les liens, ca m'ajoute actuellement [a=][/a], faudrait juste que j'arrive a ajouter l'url via la petite fenêtre comme dit plus haut :D

    Je continue mes recherces sur google, et j'èspere que vous m'aiderez, merci d'avance :)
    • Partager sur Facebook
    • Partager sur Twitter
      30 novembre 2005 à 19:13:18

      Bonjour,

      Pour ma part, ça va bien merci ^^ Et toi ?


      <a href="javascript:bbcode('[g][/g]'); document.forms['formulaire'].elements['textarea'].focus();">Lien</a>



      À mettre dans les en-têtes de ta page :

      <script type="text/javascript">
      <!--
      function lien()
      {
       var url = prompt('Entrez l\'URL du site', '');
       var nom = prompt('Entrez le nom du site', 'http://');
       return bbcode('[a='+url+']'+nom+'[/a]');
      }
      -->

      </script>


      Le lien en question :
      <a href="javascript:lien(); window.document.formulaire.textarea.focus();">Lien</a>


      Voilà je me fais un peu vieux, je n'ai pas testé et il est donc possible que ça ne fonctionne pas, redis moi.

      Dernière chose, montre moi ta fonction bbcode(), car elle est mal faite. Je vais te la "convertir" en XHTML... (Il ne faut pas oublier que la balise <form> n'a pas le droit d'avoir d'attribut name.)

      PS : Ah oui et joli topic (=titre explicite, contenu explicite et clairement rédigé), continue comme ça :) C'est rare de nos jours...
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        30 novembre 2005 à 19:16:28

        Lol, j'ai trouvé 1 minutes avant que tu me répondes :lol:

        Oui je vais bien aussi :)
        Alors je vais essayer ta fonction de suite, et voilà mon script bbcode ( on peut changer le nom xD )
        function bbcode(code)
        {
        window.document.formulaire.textarea.value += '' + code + '';
        }



        Elle est vraiment toute simple en fait, c'est juste un ajout au texte existant.

        Merci beaucoups pour ton aide

        ps: Waa que d'éloge, ca fait plaisir, merci :D

        [edit] Voilà donc j'ai testé ta fonction et elle fonctionne parfaitement, un énorme merci pour ton aide ;)
        • Partager sur Facebook
        • Partager sur Twitter
          30 novembre 2005 à 19:21:15

          OK donc voilà : normalement tu as un formulaire qui ressemble à ça :

          <form name="formulaire" action="blablabla.php">

          ...alors remplace le par :

          <form id="formulaire" action="blablabla.php">


          Ensuite, pour le code JavaScript, transforme le en :
          function bbcode(bbcode)
          {
           var textarea = document.forms['formulaire'].elements['textarea'];
           textarea.value += bbcode;
           textarea.focus();
          }


          Il est préférable de mettre le focus() dans la fonction... Voilà :)

          D'ailleurs, si jamais dans mon post précédent, remplace juste le lien :
          <a href="javascript:lien(); window.document.formulaire.textarea.focus();">Lien</a>

          ...par :
          <a href="javascript:lien();">Lien</a>

          ...et la fonction lien à remplacer par :
          function lien()
          {
           var url = prompt('Entrez l\'URL du site', '');
           var nom = prompt('Entrez le nom du site', 'http://');
           return bbcode('[a='+url+']'+nom+'[/a]');
           document.forms['formulaire'].elements['textarea'].focus();
          }
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            30 novembre 2005 à 19:40:20

            T'es un professionnel du javascript dit donc :D

            Tout fonctionne très bien, et ça raccourcis mes liens comme je ne dois plus ajouter le:
            onclick="windows.document.formulaire.textarea.focus();"


            Toutefois il y a quand même un petit détail pas vraiment important, mais ça aide pour la naviguation.
            En effet, quand on rajoute la première balise avec la fonction bbcode(), elle se place a l'endroit ou se trouve le pointeur, seulement, si il existe déjà un texte, la balise se met au bout du texte :p

            Ce qui peux être gênant si on doit rajouter une ablise au tout début du texte ^^

            Je vais un peu regarder par moi-même mais si tu as une solution je l'accepterai avec plaisir

            Et encore merci pour ton aide ( je sais je me répète mais pourquoi se priver des bonnes choses? :) )
            • Partager sur Facebook
            • Partager sur Twitter

            Focus sur un textarea quand on clique sur un lien

            × 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