Klaus Gerber: submit button gegen javascript

Hallo Experten,

ich verstehe nicht warum der Submit button (<input type='submit' name='action' value='Absenden'>)
vom Server verstanden wird.
Das gleiche aber über ein Javascript abgeschickt nicht funktioniert:
<script language="JavaScript">
        function butpress()
        {
                document.formname.submit();
        }
</script>
....
<input type='submit' value="Absenden" name='action' onClick="javascript: butpress()">

Kann es sein dass da prizipiell was anderes passiert ?
Meine Anwendung würde ein Javascript zum Submitten benötigen, da ich aus vielen Submit Buttons in
vielen Frames einen "General-Submit-Button" für Alle erzeugen will.

Hilfe, Kommentare, Meinungen aller Arte willkommen

Klaus

  1. Hallo Klaus,

    bei einem flüchtigen Blick auf Deinen Code fällt mir folgendes auf:

    <input type='submit' value="Absenden" name='action' onClick="javascript: butpress()">

    1. Hochkommata (') haben in HTML AFAIK nix verloren - wenn, dann in JavaScript
    2. und das ist das eigentliche: Du moppelst ganz gewaltig doppelt. Du definierst den Submit-Button, der das Abschicken des Formulares bewirkt, und belegst ihn zusätzlich noch mit einem JavaScript, das noch mal das Gleiche macht. Wüdr mich nicht wundern, wenn der Browser sich deswegen bockig stellt. Also: entweder über Button oder über JavaScript. Nimm einen Textlink oder mach ein Bild zum Link und häng da das JavaScript rein, dann funzt es (gesetzt der Fall natürlich, das Script ist i.O. :-)

    Grüße,

    Utz

      1. Hochkommata (') haben in HTML AFAIK nix verloren - wenn, dann in JavaScript
      2. und das ist das eigentliche: Du moppelst ganz gewaltig doppelt. Du definierst den Submit-Button, der das Abschicken des Formulares bewirkt

      hm. Ich glaube, ich hab irgendwo (Nicht in SELFHTML!) mal gelesen, dass der gesamte Ausdruck "input type" definiert ist. <input type=button> erzeugt halt den bekannten button, den man mit CSS formatieren und an ein Javascript anbinden kann, und <input type=submit> KANN NUR innerhalb eines <form>-tags stehen, da es auf irgendeine action reagieren muss. Insofern waere <input type=submit onClick=javascript:irgendwas> ein button, der auf "submit" ueberhaupt nicht reagiert, weil dafuer nix definiert ist, sondern nur das Javascript ausfuehrt.

      Christoph S.

      1. Hi Christoph,

        (...) Insofern waere <input type=submit onClick=javascript:irgendwas> ein button, der auf "submit" ueberhaupt nicht reagiert, weil dafuer nix definiert ist, sondern nur das Javascript ausfuehrt.

        Eben genau nicht. type="submit" definiert den Button, der für's Abschicken des Formulars zuständig ist und das ohne weitere Angabe auch macht. Mit value="..." gibst Du ihm den Text mit, der drauf steht. type="reset" ist für das Löschen des Formulars zuständig, auch hier erzeugt value="..." den Text.
        Das steht so im SelfHTML und funzt auch so.
        type="button" dagegen definiert einen Button, dem keine Aktion zugewiesen ist. Das ist das Mittel der Wahl, wenn Du einem Button per JavaScript eine Funktion zuweisen willst. Oder Du machst es eben so wie in meinem vorigen Posting beschrieben.
        Steht aber wie gesagt auch alles im SelfHTML.

        Grüße,

        Utz

        1. Hi Christoph,

          (...) Insofern waere <input type=submit onClick=javascript:irgendwas> ein button, der auf "submit" ueberhaupt nicht reagiert, weil dafuer nix definiert ist, sondern nur das Javascript ausfuehrt.

          Eben genau nicht. type="submit" definiert den Button, der für's Abschicken des Formulars zuständig ist und das ohne weitere Angabe auch macht. Mit value="..." gibst Du ihm den Text mit, der drauf steht. type="reset" ist für das Löschen des Formulars zuständig, auch hier erzeugt value="..." den Text.
          Das steht so im SelfHTML und funzt auch so.
          type="button" dagegen definiert einen Button, dem keine Aktion zugewiesen ist. Das ist das Mittel der Wahl, wenn Du einem Button per JavaScript eine Funktion zuweisen willst. Oder Du machst es eben so wie in meinem vorigen Posting beschrieben.
          Steht aber wie gesagt auch alles im SelfHTML.

          Grüße,

          Utz

          Hm,
          sorry <input type=button....muss es natürlich heissen (ein Tippfehler von mir)..

          aber trotzdem muss ein Unterschied existieren:
          <form...
          <input type=submit name=action value=Absenden>
          </form>

          und

          <form....
          <input type=button name=action value=Absenden onClick="javascript: document.formname.submit();">

          </form>

          Im ersten Fall liefert der Server das Richtige. Im zweiten Fall Schrott.

          Gruß Klaus

          1. Hi
            Kann es sein, dass du dein Formular an eine e-Mail Adresse abschickst? Dann kann das laut selfhtml nicht gutgehen.
            document.formularname.submit(); funktioniert nur wenn das Formular von einem Programm weiterverarbeitet wird (z.B.Perl,CGI)
            Siehe <../../tecbbd.htm#a10>
            Tschau Holger

            1. Hi
              Kann es sein, dass du dein Formular an eine e-Mail Adresse abschickst? Dann kann das laut selfhtml nicht gutgehen.
              document.formularname.submit(); funktioniert nur wenn das Formular von einem Programm weiterverarbeitet wird (z.B.Perl,CGI)
              Siehe <../../tecbbd.htm#a10>
              Tschau Holger

              Hi,

              Formular wir an ein Script abgeschickt,

              onClick="doc..." bringt leider auch keine Besserung.
              Irgendwie scheinen beide submit's nicht die gleichen Daten zum Server zu übertragen, obwohl,
              wenn ich mir die Formulardaten vor dem Absenden im JS anschaue alles korrekt ist.

              Geheimisvolle Welt....

              Gruß Klaus

          2. Hi Klaus,

            <form....
            <input type=button name=action value=Absenden onClick="javascript: document.formname.submit();">

            </form>

            Versuch's mal statt dessen mit <input type=button name=action value=Absenden onClick="document.formname.submit();"> - das "javascript:" in Deinem Beispiel gehört da nämlich nicht hin (onClick ist schon JS!) und bereitet ab und an Kummer, wenn's doch da steht.

            Grüße,

            Utz

        2. Steht aber wie gesagt auch alles im SelfHTML.

          richtig, da steht es. Aber ich sagte ja extra, dass ich das "woanders" mal gelesen haette.

          Gruesse zurueck

          Christoph S.