submit button gegen javascript
Klaus Gerber
- 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
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
- Hochkommata (') haben in HTML AFAIK nix verloren - wenn, dann in JavaScript
- 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.
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
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
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
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
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
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.