Christian Koot: Javascript und MSIE: document.forms.elements.value

Hallo miteinander,

ich bin bei der JavaScript-Programmierung in folgendes Problem reingelaufen (Google und Dokumentation helfen hier leider nicht weiter), daher möchte ich dieses mal hier vorstellen.

Beim Abschicken eines Formulars möchte ich, aus den vom Nutzer auswählten Radio-Button akkumulierte Kennzahlen generieren und diese auch mit dem Formular übergeben. Dazu halte ich in dem Formular drei leere Hidden-Felder vor, die ich mittels schreibenden Zugriff auf document.forms.elements.value füllen möchte. Das sieht folgendermaßen aus (stelle nur die wesentlichen Ausschnitte dar:

*** CODE ANFANG ***

<script type="text/javascript">
<!--
  function oslcalc()
  {

[...]

document.forms["osl"].elements["02_o32_01"].value = String(o32);
    document.forms["osl"].elements["02_o24_01"].value = String(o24);
    document.forms["osl"].elements["02_o12_01"].value = String(o12);

document.forms["osl"].action = "pt_02_03.php";
    document.forms["osl"].submit();
  }
//-->

[...]

<form name="osl" action="" method="post">

[...]

<input type="button" value="Weiter zur nächsten Seite"
                            onClick="oslcalc()">

[...]

<input type="hidden" name="02_o32_01" value="">
<input type="hidden" name="02_o24_01" value="">
<input type="hidden" name="02_o12_01" value="">

</form>

*** CODE ENDE ***

Der beschriebene Mechanismus funktioniert beim Mozilla (Version 1.3, Linux) einwandfrei, der MSIE 5.0 dagegen postet nur die Felder im leeren Ausgangszustand zurück. Weiß jemand Rat?

Vielen Dank schon mal!

  1. Hi,

    Dazu halte ich in dem Formular drei leere Hidden-Felder vor, die ich mittels schreibenden Zugriff auf document.forms.elements.value füllen möchte.

    Dir ist bewusst, dass Du Dich damit von JavaScript abhängig gemacht hast? Bei einer Vielzahl Deiner User ist das Formular funktionsfrei.

    der MSIE 5.0 dagegen postet nur die Felder im leeren Ausgangszustand zurück. Weiß jemand Rat?

    Welche Debug-Ausgaben hast Du mit welchem Ergebnis durchgeführt?

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo,

      Dir ist bewusst, dass Du Dich damit von JavaScript
      abhängig gemacht hast? Bei einer Vielzahl Deiner User
      ist das Formular funktionsfrei.

      Ich dachte, JavaScript gehört heute dazu. Außerdem werde ich vor dem Einsprung in das Formular überprüfen, ob der Browser JavaScript kann.

      Welche Debug-Ausgaben hast Du mit welchem Ergebnis
      durchgeführt?

      Ähh, mit dem MSIE kann man JavaScript debuggen? Wie geht denn das?

      Gruß
      Christian

      P.S.: Kann heute abend erst wieder ins Forum.

      1. Hi,

        Ich dachte, JavaScript gehört heute dazu.

        Irrtum, sprach der Igel, und stieg von der Scheuerbürste.

        Außerdem werde ich vor dem Einsprung in das Formular überprüfen, ob der Browser JavaScript kann.

        Man kann es ausschalten, während man sich im Formular befindet. Gestalte den Mechanismus so, dass er _unabhängig_ von der Clientfähigkeit die bestmöglichen Ergebnisse liefert.

        Welche Debug-Ausgaben hast Du mit welchem Ergebnis
        durchgeführt?
        Ähh, mit dem MSIE kann man JavaScript debuggen? Wie geht denn das?

        Bitte erkläre mir, wie dieses Missverständnis immer wieder zustande kommt. Ich sage "Debug-Ausgaben", und die Antwort hat irgendwas mit irgendeinem ominösen oder nicht mal vorhandenen Debug-Programm zu tun. Was ist so schwer daran, zu Debug-Zwecken eine Ausgabe einzuprogrammieren? Wie kann man das großartig falsch verstehen?

        P.S.: Kann heute abend erst wieder ins Forum.

        Dann wirst Du bis Montag auf meine Reaktion warten müssen.

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hallo Cheatah

          ich wundere mich ein wenig über deinen art auf fragen, problemstellungen etc. zu antworten. du bist zweifellos fachlich eine  grösse, aber ich frage mich, ob es nötig ist jeden "poster" mit sprüchen etc. noch zu überhäufen und ihn somit als deppen hinzustellen.
          unbestritten ist jedoch, dass du trotz deiner "art" sicherlich schon machem geholfen hast, dafür auch danke!!!!
          ...wollte dies einfach mal loswerden..
          gruss
          dinu

          Bitte erkläre mir, wie dieses Missverständnis immer wieder zustande kommt. Ich sage "Debug-Ausgaben", und die Antwort hat irgendwas mit irgendeinem ominösen oder nicht mal vorhandenen Debug-Programm zu tun. Was ist so schwer daran, zu Debug-Zwecken eine Ausgabe einzuprogrammieren? Wie kann man das großartig falsch verstehen?

          P.S.: Kann heute abend erst wieder ins Forum.

          Dann wirst Du bis Montag auf meine Reaktion warten müssen.

          Cheatah

          1. ich wundere mich ein wenig über deinen art auf fragen, problemstellungen etc. zu antworten. du bist zweifellos fachlich eine  grösse, aber ich frage mich, ob es nötig ist jeden "poster" mit sprüchen etc. noch zu überhäufen und ihn somit als deppen hinzustellen.

            ... also wirklich Cheatah! Wie kannst Du nur so böse sein? :-)

            MfG
            MarkX.

            1. Hi,

              ... also wirklich Cheatah! Wie kannst Du nur so böse sein? :-)

              Nicht Cheatah, nein, ASP ist böse [tm] !

              *SCNR*

              Viele Grüße
              Torsten

          2. Hi,

            ich wundere mich ein wenig über deinen art auf fragen, problemstellungen etc. zu antworten. du bist zweifellos fachlich eine  grösse, aber ich frage mich, ob es nötig ist jeden "poster" mit sprüchen etc. noch zu überhäufen und ihn somit als deppen hinzustellen.

            recherchiere diesbezüglich bitte im Archiv. Es wurde schon oft genug darüber diskursiert; sofern Du nichts bisher Ungesagtes dazu beizutragen hast existiert kein Grund, denselben Diskurs erneut durchzuführen.

            unbestritten ist jedoch, dass du trotz deiner "art" sicherlich schon machem geholfen hast, dafür auch danke!!!!

            Nicht "trotz", sondern "wegen".

            Cheatah

            --
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
      2. Moin Moin !

        Um mal einer gewissen Mietzekatze (*kicher*) das Spiel zu verderben:

        1. Sämtliche Eingabeprüfungen müssen auf dem Server laufen, denn den Client kann der User beliebig manipulieren.

        Welche Debug-Ausgaben hast Du mit welchem Ergebnis
        durchgeführt?

        Ähh, mit dem MSIE kann man JavaScript debuggen? Wie geht denn das?

        2. window.alert(), document.write(), Windows-Server + MSIE Script Debugger downloaden und installieren, um nur drei zu nennen.

        Und mal so am Rande: Den MSIE Script Debugger kann man sich schenken, all das, was der Script Debugger kann, kann der Mozilla auch. Der einzige Vorteil des Script Debuggers ist, daß er trotz der Unfähigkeit des IEs, Zeilen zu zählen, meistens die fehlerhafte Zeile anzeigt.

        Alexander

        --
        Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
        Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
        1. Hallo Alexander,

          danke für die Aufklärung. Ich muß aber darauf hinweisen, daß es mir nicht um eine Eingabeprüfung ging, sondern um die Generierung von akkumulierten Größen (damit ich die nachher nicht in SPSS errechnen muß, da bin ich nämlich völlig unbeleckt).

          Aber, ich sehe schon: Mit Javascript werde ich nicht glücklich und zwar nicht deswegen, weil eventuell der ein oder andere Browser das nicht hat, sondern weil wohl die Implementierungen so inkompatibel oder fehlerhaft sind, daß man kaum etwas programmieren kann, was sowohl in Netscape 4, MSIE, Opera und in Mozilla und dessen Abkömmlingen exakt gleich läuft.

          Na ja, vielen Dank auf alle Fälle an alle, die etwas beigetragen haben.

          Christian