Thomas Michel: formular->textarea->werte

Hallo zusammen
Wiso wird der name des formulares nicht übergeben? Wenn ich dem Script die vaialben ändere in den übergebenen text funktioniert alles problemlos... wo liegt der Fehler?

mfG

Thomas

<script>
function bild(theform,name)
{
alert(1);
alert(theform.value);
 if ((name != null) && (name != ""))
 {
 theform.value += "[bild]"+name+"[/bild] ";
 }
theform.focus();
}

</script>
<form><table border="1"><tr>
<td>
<img src="../img/upload/1.jpg">
</td>
<td>
<input type="radio" value="1.jpg" name="grafik"  onClick="javascript:bild('this.form.text','1.jpg')">
</td>
</tr><tr>
<td>
<img src="../img/upload/2.jpg">
</td>
<td>
<input type="radio" value="2.jpg" name="grafik"  onClick="javascript:bild('this.form.text','2.jpg')">
</td>
</tr></table>
<textarea rows="8" name="text" cols="50"></textarea>
</form>

  1. Hallo zusammen
    Wiso wird der name des formulares nicht übergeben?

    Vielleicht liegts daran:

    <form><table border="1"><tr>

    Kein Name definiert.

    Abgesehen davon machst du einige abgefahrene Sachen, die zwar sicher einen coolen Effekt haben, aber bestimmt keinen Sinn machen.

    <script>
    function bild(theform,name)
    {
    alert(1);
    alert(theform.value);

    Wenn theform hier ein Objekt wäre, würde es tatsächlich funktionieren...
    Aber der Aufruf mit onClick="javascript:bild('this.form.text','1.jpg')" übergibt einen String.

    if ((name != null) && (name != ""))
    {
    theform.value += "[bild]"+name+"[/bild] ";

    Hier wird ein Wert gebildet, der nirgenwo hingeschrieben wird (wegen siehe oben)

    }
    theform.focus();

    Und hier kriegt ein String den Focus. Abgefahren! ;)

    }

    </script>
    <form><table border="1"><tr>
    <td>
    <img src="../img/upload/1.jpg">
    </td>
    <td>
    <input type="radio" value="1.jpg" name="grafik"  onClick="javascript:bild('this.form.text','1.jpg')">

    Was soll uns dieser Radiobutton sagen? Willst du je nach Radiobutton die eine oder die andere Grafik selektieren? Und was willst du dann mit der Selektion machen?

    </td>
    </tr><tr>
    <td>
    <img src="../img/upload/2.jpg">
    </td>
    <td>
    <input type="radio" value="2.jpg" name="grafik"  onClick="javascript:bild('this.form.text','2.jpg')">
    </td>
    </tr></table>
    <textarea rows="8" name="text" cols="50"></textarea>

    Hat die Textarea eine gewisse Bedeutung?

    </form>

    Tja, außer einer unverständlichen Frage und ein paar heftigen Javascript-Fehlern ist da nicht viel rauszufinden. Insbesondere fehlt die Beschreibung, was das Script denn eigentlich tun sollte (und offenbar nicht tut).

    - Sven Rautenberg

    1. Hallo

      Der script soll folgendes...

      er soll in das textarea (wenn ich das erste bild auswähle)
      [bild]1.jpg[/bild] reinschreiben....

      das problem sind vermutlich die anführungszeichen :)

      mfG

      Thomas Michel

      1. Hallo

        Der script soll folgendes...

        er soll in das textarea (wenn ich das erste bild auswähle)
        [bild]1.jpg[/bild] reinschreiben....

        das problem sind vermutlich die anführungszeichen :)

        Wie ich schon sagte: Das Formular hat keinen Namen (und keine Action, die ist aber laut Standard zwingend anzugeben).

        Mit einem Namen kannst du dann über
        document.FORUMIULARNAME.FORMULARELEMENTNAME.EIGENSCHAFT
        auf die Elemente des Formulars zugreifen. Vorher nicht, da gehts nur mit
        document.forms[0].FORMULARELEMENTNAME.EIGENSCHAFT

        Und dann mußt du checken, was du so an die Funktionen durchreichst. Ideal sind zwar Strings, aber die Funktion muß die dann auch sinnvoll verarbeiten können. ;)

        Zum Beispiel ist doch recht fragwürdig, warum du der Funktion zweimal identisch sagen willst (funktionieren tut es so ja nicht), sie möge doch bitte die Textarea ändern. Gibts mehrere Textareas? Muß das Klicken eines einzelnen Radiobuttons mal in die eine, mal in die andere Textarea gehen? Wo wird das dann umgeschaltet?

        Eigentlich willst du doch nur bei Button 1 das Bild 1 und bei Button 2 das Bild 2 eintragen. Warum du dazu Radiobuttons genommen hast, ist mir zweifelhaft (die haben in der Regel eine völlig andere Funktionsbedeutung), nimm doch lieber einen normalen Button, oder bastel vor dem Absenden deine Textarea zusammen.

        Ansonsten:

        function bild(bildtext) {
        document.FORMULARNAME.text.value = document.FORMULARNAME.text.value +'[bild]'+bildtext+'[/bild]';
        }

        onclick="bild('bild.jpg');"

        - Sven Rautenberg

        1. Hallo

          Der script soll folgendes...

          er soll in das textarea (wenn ich das erste bild auswähle)
          [bild]1.jpg[/bild] reinschreiben....

          das problem sind vermutlich die anführungszeichen :)

          Wie ich schon sagte: Das Formular hat keinen Namen (und keine Action, die ist aber laut Standard zwingend anzugeben).

          Mit einem Namen kannst du dann über
          document.FORUMIULARNAME.FORMULARELEMENTNAME.EIGENSCHAFT
          auf die Elemente des Formulars zugreifen. Vorher nicht, da gehts nur mit
          document.forms[0].FORMULARELEMENTNAME.EIGENSCHAFT

          Und dann mußt du checken, was du so an die Funktionen durchreichst. Ideal sind zwar Strings, aber die Funktion muß die dann auch sinnvoll verarbeiten können. ;)

          Zum Beispiel ist doch recht fragwürdig, warum du der Funktion zweimal identisch sagen willst (funktionieren tut es so ja nicht), sie möge doch bitte die Textarea ändern. Gibts mehrere Textareas? Muß das Klicken eines einzelnen Radiobuttons mal in die eine, mal in die andere Textarea gehen? Wo wird das dann umgeschaltet?

          Eigentlich willst du doch nur bei Button 1 das Bild 1 und bei Button 2 das Bild 2 eintragen. Warum du dazu Radiobuttons genommen hast, ist mir zweifelhaft (die haben in der Regel eine völlig andere Funktionsbedeutung), nimm doch lieber einen normalen Button, oder bastel vor dem Absenden deine Textarea zusammen.

          Ansonsten:

          function bild(bildtext) {
          document.FORMULARNAME.text.value = document.FORMULARNAME.text.value +'[bild]'+bildtext+'[/bild]';
          }

          onclick="bild('bild.jpg');"

          • Sven Rautenberg

          Hallo
          Aus dem ganzen wird eine bildauswahl in einem cms system entsehen... D.h es werden div bilder hochgeladen per formular hochgeladen.. nun kann ein knopf gedrückt werden dabei öffnet sich ein fenster mit den bildern nun soll der user ein bild auswählen können und die bildeinstellungen sollen einem textarea hinen geschrieben werden.
          Das ganze geht jetzt so wie ich es wollte auf einer seite :)
          mfG

          Thomas

    2. Hallo

      onClick="javascript:bild(this.form.text,'1.jpg')"

      Ohne die Hochkommata funktioniert das Script einwandfrei.

      Tja, außer einer unverständlichen Frage und ein paar heftigen Javascript-Fehlern ist da nicht viel rauszufinden.

      Naja, so heftig sind sie nun auch nicht, oder?
      Könnte man schon fast als ein Versehen abtun.

      Grüße

      Daniel