Netscape & Formulare mit JavaScript

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Netscape & Formulare mit JavaScript

    Ein Formular hat zwei Buttons.
    Bei Klick auf den zweiten sollen Flags gesetzt und ein neues Fenster geöffnet werden, bei Klick auf den ersten nicht; aber bei beiden sollen sämtliche Formulardaten mitgeschickt werden.

    Also ist mein zweiter Button ein toter href; onClick werden die Parameter geändert inklusive target und den flags, nach dem Submit werden sie wieder zurück gesetzt, damit beim Klick auf den ersten Button alles klar geht.

    Code:
      function submit2 (frm) {
        frm.target='fenster2';
        frm.flag.value='button2';
        frm.submit();
        frm.target='_self';
        frm.flag.value='';
      }
    <form name="frm" target="target.php3" method="post">
      <!-- hier sind noch ein paar Eingabefelder mehr -->
      <input type="hidden" name="flag" value="">
      <input type="image" src="button1.gif" border="0">
      <a href="javascript:;" onClick="submit2(document.frm);">
        <img src="button2.gif" border="0">
      </a>
    </form>
    Das funktioniert soweit auch ganz gut ... im Internet Explorer. Im Netscape funktioniert es aber nur, wenn ich nach dem Submit (noch in der Fuktion submit2) ein "alert('irgendwas');" aufrufe, sonst tut sich da gar nichts.
    Weiß jemand, woran das liegt und wie ich es OHNE alert auch im Navigator zum Laufen bekomme?

    ----

    außerdem öffnen IE und NN mit jedem Klick auf button2 ein neues Fenster, auch wenn schon eins mit dem angegebenen Namen existiert.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

  • #2
    zum letzten: ich glaube nicht, daß du wirklich einen Namen des Fensters angibst -> öffne doch zuerst per window.open ein Fenster und schick dann dein Formular dort hin.

    zum anderen: liegt irgendwie an der Initalisierung der Variablen/Form, nachdem du es schon weggeschickt hast. Hatte ich auch schon mal. Weiß nicht mehr genau wie, aber ich mußte damals das Problem für NS umgehen und ganz anders machen.

    Vielleicht probierst du mal das:

    <a href="submit2(document.frm);"><img src="button2.gif" border="0"></a>

    oder

    <input type="image" src="button2.gif" border="0" onclick="submit2(document.frm)">

    der Javascript-Verweis kann doch eigentlich auch direkt im href stehen, oder? Bei mir klappt's zumindest immer...

    Viel Glück mit NS...

    Hast du schon was von IE 6 beta gehört? gut oder nicht so?

    Kommentar


    • #3
      YAY!!!

      Heißen Dank, BrainBug.
      ein window.open vor das frm.target= und er öffnet es im NN und im IE. Jetzt weiß ich nur noch nicht, wie ich abchecke, ob das Fenster schon offen ist oder nicht.

      fenster2.closed sagt mir nur, ob's schon geschlossen wurde; aber es produziert einen JavaScript-Fehler 'fenster2 ist undefiniert' bzw. 'fenster2 is not defined.', wenn es noch gar nicht geöffnet war.

      vielleicht ein Ausweg: erst öffnen, gleich wieder schließen - aber geht's nicht ohne?
      mein Sport: mein Frühstück: meine Arbeit:

      Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

      Kommentar


      • #4
        Ich habe jetzt außerhalb der Funktion dieses eingefügt:
        Code:
        window.open ('','fenster2','dependent=yes');
        fenster2.close();
        funzt aber auch nicht: Das Fenster wird zwar geöffnet, aber leider nicht geschlossen und lungert jetzt mit grauem Hintergrund im Vordergrund. Der Grund (laut JavaScript-Fehlermeldung): fenster2 ist nicht definiert.

        *baldtotalverzweifeltist*
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar


        • #5
          nee, so kannst du doch auch nicht das Fenster referenzieren. Das mußt du über eine Variable machen:

          meinfenster=window.open ('','fenster2','dependent=yes');
          meinfenster.close();

          außerdem funzt dependent auch nur bei Netscape.

          aber warum willst du das Fenster eigentlich schliessen? Ich dachte, du willst dort dein Formular haben? Wenn ja, solltest du nach dem Öffnen dein Formular mit target=fenster2 abschicken und es müßte dann im geöffneten Fenster geladen werden.

          Kommentar


          • #6
            schon mal einen Schritt weiter

            Ich will das Fenster erst haben, wenn auf den Button geklickt wird; darum schließ ich's wieder. Ich öffne es Anfangs nur, damit es schon mal da war und ich es mit Namen ansprechen kann, ohne daß JavaScript wegen Undefiniertheit meckert.

            Nur leiderleiderleider wird immer noch im IE bei jedem Klick ein neues Fenster geöffnet, während sich bei Netscape gar nichts tut, solange das Fenster nicht geschlossen wurde.
            Und wenn ich versuche, mir den Namen des Fensters auszugeben, gibt's vom IE an Stelle des alert einen JS-Fehler: "Der aufgerufene (Server, nicht die Serveranwendung) ist nicht verfügbar und kann nicht gefunden werden. Alle Verbindungen sind ungültig. Der Aufruf wurde nicht durchgeführt."

            hier noch mal der aktülle code:
            Code:
              function mysubmit (frm) {
                if (fenster2.closed)
                  fenster2 = window.open('','fenster2','width=800,height=600,resizable=yes,dependent=yes,scrollBars=1,screenX=1,screenY=1');
                frm.target='fenster2';
                frm.seite.value='ang_result';
                frm.ordner.value='joblink';
                frm.submit();
                frm.target='_self';
                frm.seite.value='joblink';
                frm.ordner.value='';
              }
            
              fenster2 = window.open ('blank.html','fenster2','dependent=yes,resizable=yes,scrollBars=1');
              fenster2.close();
            Mit meinfenster als Variable hab ich's auch probiert, aber das ändert auch nix.
            *seufz*
            mein Sport: mein Frühstück: meine Arbeit:

            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

            Kommentar


            • #7


              verstehe ich das richtig, daß du ein Formular hast und der User hat die Möglichkeit, das Teil abzuschicken oder vorher mal anzuschauen oder so?

              da ist dann aber dein Code ganz gut. Der "normale" Submit-Button ist ja eh klar und beim "speziellen" Sendebutton rufst du deine Funktion auf. Die wiederum öffnet ein Blanko-Fenster mit Größe etc. angepasst und als internen Namen "fenster2" -> dann kommt dein Code für Änderung von target und Flags setzen und abschicken.
              Dafür brauchst du doch eigentlich nicht das Fenster vorher nur mal öffnen und wieder schliessen.

              Kommentar

              Lädt...
              X