Thomas Seifert: Von einer textarea zu dem dazugehörigen Form

hat jemand eine idee wie ich anhand
eine textarea id zu dem dazugehörigen form kommen kann?

  1. Erzähl erst mal was du vor hast, ich verstehe deine Frage nicht so wirklich :)

    Michael

  2. Hallo Freunde des gehobenen Forumsgenusses,

    hat jemand eine idee wie ich anhand
    eine textarea id zu dem dazugehörigen form kommen kann?

    Ich würde versuchen, die einzelnen Formulare (document.forms) durchzugehen
    und zu schauen, ob sie ein Element mit der ID enthalten.

    Gruß
    Alexander Brock

  3. hat jemand eine idee wie ich anhand
    eine textarea id zu dem dazugehörigen form kommen kann?

    Indem Du ausgehend von dem textarea-Element in einer Schleife solange den ParentNode beziehst, bis dieser den tagName == form hat.

    Du benötigst dazu document.getElementById und getParentNode()

    Tschö.

    1. hat jemand eine idee wie ich anhand
      eine textarea id zu dem dazugehörigen form kommen kann?

      Indem Du ausgehend von dem textarea-Element in einer Schleife solange den ParentNode beziehst, bis dieser den tagName == form hat.

      Du benötigst dazu document.getElementById und getParentNode()

      Diese Idee, sowie auch die Idee von Alexander kamen mir auch in den Sinn, basieren aber beide auf Trial und Error. Vielleicht gäbe es ja etwas interesanteres und cleveres.

      ziel: ich muss im form ein onSubmit setzen, habe aber wirklich nur die ide der textarea

    2. Ungefähr so:

      function getFormElem(elemId)
      {
        formElem = document.getElementById(elemId);

      try {
          while (formElem.tagName != 'FORM') {
            formElem = formElem.parentNode;
          }
        }
        catch ( e ) {
          alert('Form-Element nicht vorhanden.');
        }

      return (formElem);
      }

      Die Funktion liefert Dir dann das Form-Element zur textarea zurück.

  4. hi,

    hat jemand eine idee wie ich anhand
    eine textarea id zu dem dazugehörigen form kommen kann?

    Nette Vorschläge bisher *grins*

    Aber ich würde doch das simple
    referenzAufTextarea.form
    bevorzugen ...

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Aber ich würde doch das simple
      referenzAufTextarea.form
      bevorzugen ...

      Einfach kann ja jeder... *flöt*

      Diese Referenz kannte ich noch gar nicht. :)

      Gruß,
      Feng

    2. Aber ich würde doch das simple
      referenzAufTextarea.form
      bevorzugen ...

      wie meinst du das?

      1. Aber ich würde doch das simple
        referenzAufTextarea.form
        bevorzugen ...

        wie meinst du das?

        So: http://de.selfhtml.org/javascript/objekte/elements.htm#form

        Gruß,
        Feng

        1. So: http://de.selfhtml.org/javascript/objekte/elements.htm#form

          das klappt nicht, weil ich dazu den formname brauche, den ich nicht habe, sondern herausbekommen muss

          1. ich ziehe meine letzte antwort hiermit zurück

            document.getElementById(textarea_id).form.name;

            funzt.

            danke an alle

            1. Hallo,

              ich ziehe meine letzte antwort hiermit zurück

              document.getElementById(textarea_id).form.name;

              funzt.

              Ich meine auch :-)
              man hat tatsächlich DIREKT das Fomular,  und nicht erst den Namen :-)

              Sorry,
              werbeklaus

            2. ich ziehe meine letzte antwort hiermit zurück

              document.getElementById(textarea_id).form.name;

              woher stammt die ID?

              Struppi.

              1. das ganze wird ein kleiner editor für eine textarea. und alles was man dazu angeben sollte ist halt die id der textarea

                1. das ganze wird ein kleiner editor für eine textarea. und alles was man dazu angeben sollte ist halt die id der textarea

                  Mir ist schon klar was die ID bedeuten soll, aber woher kommt sie? Wie ermittelst du diese?

                  Struppi.

                  1. ich brauch sie doch nicht zuermitteln.
                    man gibt einfach die id einer textarea an
                    und schon macht der editor alles nötige

                    1. ich brauch sie doch nicht zuermitteln.
                      man gibt einfach die id einer textarea an
                      und schon macht der editor alles nötige

                      Wie macht er das?
                      Woher kennt der Editor die ID?
                      Wie übergibst du dem Editor die ID?
                      Evtl. gibt es einfachere Wege.

                      Struppi.

                      1. $new_js_file = new javascript("../../classes/js/texteditor.js");
                        $new_js_file->flush();

                        $new_js = new javascript();
                        $js_string="draw_editor();";
                        $new_js->add($js_string);
                        $new_js->close();
                        $new_js->flush();

                        echo "<textarea class="form_textarea" name="angebots_langtext" id="angebots_langtext" style="width:445px;" rows="8">".$detaildata->inhalt[0][6]."</textarea>";
                        $new_js2 = new javascript();
                        $js_string2="setVars('angebots_langtext');";
                        $new_js2->add($js_string2);
                        $new_js2->close();
                        $new_js2->flush();

                        1. Tag Thomas.

                          Mich deucht ich sähe PHP, doch geht es nicht um Javascript?

                          echo "<textarea class="form_textarea" name="angebots_langtext" id="angebots_langtext" style="width:445px;" rows="8">".$detaildata->inhalt[0][6]."</textarea>";

                          Das ist aber absolut irrelevant, interessant wäre der JS-Code, der beim Client ankommt, also das Ergebnis des oben stehenden Codes. Wenn du also weitere Hilfestellungen möchtest, dann poste den JS-Code, den ein Browser zu sehen bekäme.

                          Siechfred

                          1. Mich deucht ich sähe PHP, doch geht es nicht um Javascript?

                            ja du wolltest ja auch sehen wie das js an die id kommt ;)

                            function setVars(textarea)
                            {
                             textarea_id = textarea;

                            text_gesamt = document.getElementById(textarea_id).value;

                            text_gesamt = text_gesamt.replace(/<BR>/g, '');
                             text_gesamt = text_gesamt.replace(/<br>/g, '');
                             text_gesamt = text_gesamt.replace(/<br />/g, '');

                            document.getElementById(textarea_id).value = text_gesamt;

                            if (document.all)
                             {
                              document.getElementById(textarea_id).form.setAttribute("onsubmit", function() {on_submit();});
                             }
                             else
                             {
                              document.getElementById(textarea_id).form.setAttribute("onsubmit", "on_submit();");
                             }
                            }

                            function on_submit()
                            {
                             text_gesamt = document.getElementById(textarea_id).value;

                            text_gesamt = text_gesamt.replace(/\r\n/g, '<BR>');
                             text_gesamt = text_gesamt.replace(/\r/g, '<BR>');
                             text_gesamt = text_gesamt.replace(/\n/g, '<BR>');

                            document.getElementById(textarea_id).value = text_gesamt;
                            }

                            function draw_editor()
                            {
                             document.write('<table width="445" cellspacing="0" border="0" class="border_black">');
                             document.write('<tr>');

                            document.write('<td width="18" height="17" onclick="insert('<b>', '</b>');" onmouseover="style.cursor='hand';"><img src="/classes/js/images/bold.gif" width="18" height="17" border="0" alt="Bold" title="Bold" onclick="this.src='/classes/js/images/bold_d.gif'" onmouseout="this.src='/classes/js/images/bold.gif'"></td>');

                            ...

                            document.write('<td>&nbsp;</td>');
                             document.write('</tr>');
                             document.write('</table>');
                            }

                            1. Hi,

                              ich dachte ja noch, "nettes Projekt" (bastel ja auch ständig an meiner IDE rum - ein Mann sollte ein Kind zeugen, einen Baum pflanzen und einen Editor schreiben ;-)), aber z.B.:

                              text_gesamt = text_gesamt.replace(/<BR>/g, '');
                              text_gesamt = text_gesamt.replace(/<br>/g, '');

                              Parameter i?

                              Und was ist z.B. mit <br clear="all">? ;-)

                              if (document.all)

                              (grusel)

                              document.getElementById(textarea_id).form.setAttribute("onsubmit", function() {on_submit();});

                              Wieso mit setAttribute() Eventhandler setzen?

                              style.cursor='hand';">

                              hand? I.d.R. pointer.

                              Gruß, Cybaer

                              --
                              Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
                              1. ich dachte ja noch, "nettes Projekt" (bastel ja auch ständig an meiner IDE rum - ein Mann sollte ein Kind zeugen, einen Baum pflanzen und einen Editor schreiben ;-)), aber z.B.:

                                wer nen perfekten editor will nimmt eh einen fertigen per iframe.
                                und für minimalen geschichten langt das so.
                                man bedenke ich hasse eigentlich javascript :)

                                Parameter i?

                                wie meinen?

                                Und was ist z.B. mit <br clear="all">? ;-)

                                :) id und name net zu vergessen

                                Wieso mit setAttribute() Eventhandler setzen?

                                weil es die bedingung ist NUR die id der textarea zu verwenden.

                                hand? I.d.R. pointer.

                                hast recht

                                1. Hi,

                                  wer nen perfekten editor will nimmt eh einen fertigen per iframe.

                                  "Perfekt" ist IMHO der, der die persönlichen Bedürfnisse voll abdeckt. Da kenne ich gar keinen fertigen. :)

                                  und für minimalen geschichten langt das so.
                                  man bedenke ich hasse eigentlich javascript :)

                                  :)

                                  Parameter i?
                                  wie meinen?

                                  Case-insensitives Replace geht mit der Anweisung "i".

                                  Und was ist z.B. mit <br clear="all">? ;-)
                                  :) id und name net zu vergessen

                                  name ist nicht erlaubt. :-)

                                  Wieso mit setAttribute() Eventhandler setzen?
                                  weil es die bedingung ist NUR die id der textarea zu verwenden.

                                  Da sehe ich jetzt keinen Zusammenhang, bzw. keine Notwendigkeit, den Eventhandler nicht direkt zu setzen, wie es sinnvoll und sicherer wäre.

                                  Gruß, Cybaer

                                  --
                                  Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
                                  1. Case-insensitives Replace geht mit der Anweisung "i".

                                    ahh danke

                                    Da sehe ich jetzt keinen Zusammenhang, bzw. keine Notwendigkeit, den Eventhandler nicht direkt zu setzen, wie es sinnvoll und sicherer wäre.

                                    es geht darum nur die id der textarea anzugeben, und schon funktioniert ALLES.
                                    d.h. kein php replace kein nl2br usw (vor- und auch nachbehandlung)
                                    und keine weitere anforderungen an den html code (außer natürlich das es sich um ein formular selber handeln muss).

                                    1. Hi,

                                      es geht darum nur die id der textarea anzugeben, und schon funktioniert ALLES.

                                      Das ist mir schon bewußt. :-)

                                      Dir hingegen ist nicht bewußt, daß es besser ist, Eventhandler direkt zu setzen, anstatt via setAttribute(). Bzw. dir sagt die Thematik anscheinend prinzipiell nichts:

                                      obj.onsubmit=on_submit;

                                      obj (das FORM-Objekt) hast Du, da via TA-ID ermittelbar, on_submit ist deine Submit-Funktion.

                                      und keine weitere anforderungen an den html code

                                      Davon redet auch keiner.

                                      (außer natürlich das es sich um ein formular selber handeln muss).

                                      BTW: Man kann auch "irgendein HTML-Element" via JS on-the-fly umwandeln in das, was Du brauchst/darstellen willst. Du könntest also den Anwender, z.B. via GET-Parameter, bestimmen lassen, daß in der Seite das 3. DIV von unten in einen Editor (auch mit FORM und TA) umgewandelt wird.

                                      Gruß, Cybaer

                                      --
                                      Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
                                      1. obj.onsubmit=on_submit;

                                        danke, das werd ich mal ausprobieren

                                        (außer natürlich das es sich um ein formular selber handeln muss).

                                        BTW: Man kann auch "irgendein HTML-Element" via JS on-the-fly umwandeln in das, was Du brauchst/darstellen willst. Du könntest also den Anwender, z.B. via GET-Parameter, bestimmen lassen, daß in der Seite das 3. DIV von unten in einen Editor (auch mit FORM und TA) umgewandelt wird.

                                        die frage die ich mir da stelle, wird das ganze dann nicht zu undynmaisch oder erfordert u.U. zuviele Einstellungen vom Nutzer?

                                        1. Hi,

                                          die frage die ich mir da stelle, wird das ganze dann nicht zu undynmaisch oder erfordert u.U. zuviele Einstellungen vom Nutzer?

                                          Das zu vermeiden, obliegt deiner kreativen Phantasie. ;-)

                                          Man könnte z.B. festlegen, daß ein im HTML-Quellcode vorhandenes <span id="editor"></span> automatisch in einen Editor umgewandelt wird.

                                          *Ich* fände *das* jedenfalls "einfacher".

                                          Oder daß der Editor einfach dort ist, wo das JS eingebunden wird.

                                          Gruß, Cybaer

                                          --
                                          Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
          2. Hallo Thomas!

            So: http://de.selfhtml.org/javascript/objekte/elements.htm#form
            das klappt nicht, weil ich dazu den formname brauche, den ich nicht habe, sondern herausbekommen muss

            Sicher? Du nimmst das Textarea (am einfachsten wohl mit document.getElementById() ) und hängst fragst den form-Namen dieses Objektes ab:

            var derNameMeinesGesuchtenFormulars = document.getElementById(meineID).form;

            wenn du nun das Objekt des forms brauchst, und nicht nur den namen, dann geht es weiter mit:

            var meinGesuchtesFormular = document.forms[derNameMeinesGesuchtenFormulars];

            Klar?

            werbeklaus

            1. Sicher? Du nimmst das Textarea (am einfachsten wohl mit document.getElementById() ) und hängst fragst den form-Namen dieses Objektes ab:

              var derNameMeinesGesuchtenFormulars = document.getElementById(meineID).form;

              Das ist nicht der Name des fomrulare sondern das ist bereits das Formluar.

              var meinGesuchtesFormular = document.forms[derNameMeinesGesuchtenFormulars];

              Das ist nicht mehr notwendig.

              Struppi.

          3. So: http://de.selfhtml.org/javascript/objekte/elements.htm#form
            das klappt nicht, weil ich dazu den formname brauche, den ich nicht habe, sondern herausbekommen muss

            Zeig doch mal wie du das ganze anwenden möchtest. woher weißt du denn die ID?

            Struppi.

      2. Aber ich würde doch das simple
        referenzAufTextarea.form
        bevorzugen ...

        wie meinst du das?

        Jede Formularelement kennt bereits die Referenz auf sein Formular, diese steht in der Eigenschaft .form

        Struppi.