Peterle: target beim form setzen

Hallo *,

Ich moechte per JS das target eines Froms setzen, im Netscape funktioniert auch soweit alles nur im IE wird der target nicht richtig gesetzt bzw nicht benutzt?

Die action funktioniert in beiden Browsern korrekt.

Jemand eine Idee an was es liegt?

update_form.action = "../cgi-bin/update_input.pl";
update_form.target = "ABC";

danke

  1. Hi,

    update_form.action = "../cgi-bin/update_input.pl";
    update_form.target = "ABC";

    document.Formname.target sollte gehen. Hast Du vielleicht versehentlich "target" fuer etwas anderses verwendet, oder verwendest Du eine Variable "name" und ueberschreibst ungewollt den Fensternamen?

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
    1. Hi ,

      Anscheinend liegt das Problem beim namen des targets, zumindest kann ich es nicht ausslesen und gehe deshalb davon aus, das es nicht gesetzt wurde.

      //das target
      var td_iframe = top.document.createElement('iframe');
      td_iframe.id = "ABC";
      td_iframe.name = "ABC";

      alert(top.document.getElementsByTagName("form")[3]);
      alert(top.document.getElementsByTagName("form")[3].name);
      alert(top.document.getElementsByTagName("form")[3].id);

      Gibt mir als erstes das object an und als 3. die id aus, aber den namen bekomme ich nicht angezeigt. Auch unter Netscape nicht, komisch nur, dass es da funktioniert.

      Leichte Verwirrung macht sich bei mir breit.

      Gruss
      Peterle

      1. hi,

        //das target
        var td_iframe = top.document.createElement('iframe');
        td_iframe.id = "ABC";
        td_iframe.name = "ABC";

        das bezieht sich auf das name-attribut des iframes.

        alert(top.document.getElementsByTagName("form")[3].name);

        hier fragst du auf das name-attribut eines formulars ab.

        Gibt mir als erstes das object an und als 3. die id aus, aber den namen bekomme ich nicht angezeigt. Auch unter Netscape nicht, komisch nur, dass es da funktioniert.

        wo siehst du jetzt konkret einen zusammenhang zwischen name des iframes und name des formulars?

        wenn du überprüfen willst, ob das setzen des name-attributes am iframe geklappt hat, solltest du doch eher
        top.document.getElementById("abc").name
        ausgeben lassen (o.s.ä.)

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. hi,

          wo siehst du jetzt konkret einen zusammenhang zwischen name des iframes und name des formulars?

          Sorry Leute, dass war natuerlich Quatsch was ich da gemacht habe.

          Der name des iframes wird richtig gesetzt.

          Da ich den Fehler immernoch nicht gefunden habe, frag ich mal anderst.
          Ich moechte in einer tabelle, auf knopfdruck Zusatzinformationen zu einer Zeile bereit stellen.

          Also habe ich mir gedacht, mach ich ein schickes "+" Zeichen ans ende jeder Zeile und wenn man da drauf drueckt, erstelle ich unter dieser Zeile eine neue Zeile.

          In dieser Zeile erstelle ich dann einen iframe und uebergebe dann per form alle relevanten Daten ein ein schon existierendes pl skript, welches das Ergebniss dann in den iframe in meiner tabelle schreibt.

          So weit so gut, funktioniert auch unter Netscape nur unterm IE gibt es oben genanntes Problem, dass das pl script nicht im iframe sondern in einem neuen Fenster aufgerufen wird.

          Hab mal mein bisherigen code angehaengt, hoffentlich kann man es einigermasen lesen.
          function db_edit(zid)
              {
              var edit = "inhalt_td_"+zid+"_edit";
              var edit_obj = top.document.getElementById(edit);

          // einklappen
              if (edit_obj.status == "minus")
                {
                edit_obj.src = 'images/plus.gif';
                edit_obj.status = "plus";

          tr_ext_id = "tr_ext_"+zid;
                rek_remove(top.document.getElementById(tr_ext_id));
                //top.document.removeChild(top.document.getElementById(tr_ext_id));
                }
              // ausklappen
              else
                {
                edit_obj.src = 'images/minus.gif';
                edit_obj.status = "minus";

          var next_zid = zid + 1;
                var next_edit = "inhalt_td_"+next_zid+"_edit";
                var next_edit_obj = top.document.getElementById(next_edit);

          // erzeuge ext
                var tr_ext = top.document.createElement('tr');
                tr_ext.id = "tr_ext_"+zid;
                tr_ext.name = "tr_ext_"+zid;

          var td_ext = top.document.createElement('td');
                tr_ext.appendChild(td_ext);
                td_ext.colSpan="9";

          var td_iframe_name = "ext_iframe"+zid;
                var td_iframe = top.document.createElement('iframe');
                td_iframe.id = td_iframe_name;
                td_iframe.name = td_iframe_name;
                td_ext.appendChild(td_iframe);
                td_iframe.width="100%";
                //td_iframe.height="100%";

          var update_form = top.document.createElement("form");
                update_form.id = "ext_form"+zid;
                ausgabe.appendChild(update_form);

          update_form.action = "../cgi-bin/datum_update_input.pl";

          update_form.target = td_iframe_name;

          // wenn ein nachfolge obj existiert, packe es vor ihm
                if (next_edit_obj)
                  {

          }
                else
                // sonst einfach als leztes element anhaengen
                  {
                  tbody.appendChild(tr_ext);
                  update_form.submit();

          } // end if (next_edit_obj)

          } // end (edit_obj.status == "minus")

          } // end function db_edit(zid)

          Gruss Peterle