Der Martin: Button mit HTML und JavaScript

Beitrag lesen

Hallo,

ich habe da ein bisschen HTML mit JavaScript. Drei Button, zwei mit HTML und einer mit JavaScript. Die zwei laufen auf allen Brosern, der eine nur
im MS Explorer.

das dritte Formular dürfte in keinem Browser "laufen" oder "funktionieren".

Eigentlich machen alle dass Gleiche

Mitnichten!

und doch wird bei dem dritten Button die Seite neu aufgebaut.

Anders gesagt: Die Seite wird durch das neu ausgegebene Formular ersetzt!

Gibt es noch andere Technologien dieser Art, die dann z.B. auch auf dem Firefox funktionieren?

Kommt drauf an, was du erreichen willst.

function WriteData()
    { document.write("<form action="/WRITEPI" methode="post" name="ButtonForm">");
      document.write("<input type="hidden" name="ADR1" value="MW10" />");
      document.write("<input type="hidden" name="VALUE1" value="33333" />");
      document.write("<input type="hidden" name="FORMAT1" value="%d" />");
      document.write("</form>");

window.setTimeout("document.ButtonForm.submit()", 1);
    }

Anstatt den Quellcode mit Backslashes zu verunzieren, könntest du auch auf einfache Anführungszeichen ausweichen. Das sieht übersichtlicher aus.

<form action="/WRITEPI" methode="post">
      <input type="hidden" name="ADR1" value="MW10" />
      <input type="hidden" name="VALUE1" value="65535" />
      <input type="hidden" name="FORMAT1" value="%d" />
      <input type="submit" value="65535" />
    </form>

<form action="/WRITEPI" methode="post">
      <input type="hidden" name="ADR1" value="MW10" />
      <input type="hidden" name="VALUE1" value="0" />
      <input type="hidden" name="FORMAT1" value="%d" />
      <input type="submit" value="00000" />
    </form>

Zwei ganz normale Formulare.

<form>
      <input type="submit" value="33333" onClick="WriteData()" />
    </form>

Und was ist das? Beim Klicken auf den Submit-Button wird eine Javascript-Funktion aufgerufen, die document.write() verwendet. Wird document.write() aber nach dem Rendern eines Dokuments aufgerufen, dann ersetzt die Javascript-Ausgabe das bisherige Dokument komplett.
Es sei denn, das Javascript wird gar nicht ausgeführt: Dann kommt das action-Attribut des Formulars zum Tragen, das hier fehlt. Es gilt also der Defaultwert "" (Leerstring), der das aktuelle Dokument neu vom Server anfordert.

So long,
 Martin

--
Ein Snob ist ein Mensch, der sich auf ein Stachelschwein setzt, ohne eine Miene zu verziehen - nur weil ihm jemand gesagt hat, das sei ein Designersessel.