• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Formular mit mehreren submits

Syren Baran

Neues Mitglied
Hi alle,

wenn ich in einem Formular mehrere inputs vom typ submit habe und in einem input vom typ text return drücke wird automatisch das erste submit ausgelöst (zumindest im Firefox 3.6.7). Gibt es eine einfache Möglichkeit ohne Javascript das default-submit zu setzen?

Danke,
Syren
 
Werbung:
Vieleicht sollte ich mal ein Beispiel bringen, damit es etwas klarer wird.

Code:
<form method="POST" action="formular.php">
....
<input type="submit" name="delete<?=$var;?> value="L&ouml;schen">
...
<input type="submit" value="Absenden">
</form>
Oberer Submit ist nichtmal immer im Formular enthalten, soll aber verständlicherweise nicht die Default-Aktion für Return-Drücken sein.

Hoffe die Fragestellung ist damit klarer.
 
Wenn ein Formlar ohne Button abgesendet wird, wird auch kein Wert übertragen
 
Werbung:
Wenn ein Formlar ohne Button abgesendet wird, wird auch kein Wert übertragen
Hmm, verstehe ich leider gerade nicht ganz.
Was meinst du mit "ohne Button"?
Kein Button im Formular enthalten oder keiner gedrückt (stattdessen Return)?

Der untere submit ist immer im Formular enthalten (in diesem Fall wirkt Return ja auch wie erwartet/gewünscht), aber wenn ein anderer submit im Formular weiter oben vorhanden ist wird stattdessen dessen name und value übertragen ( oder auf gut deutsch "nix gut" ).
 
Nein es wird nix übertragen, wenn du keinen submit button drückst (also, das was du schilderst, dass die Return Taste gedrückt wird)
 
Nein es wird nix übertragen, wenn du keinen submit button drückst (also, das was du schilderst, dass die Return Taste gedrückt wird)

Sowohl Firefox 3.6.7 als auch Opera 10.60 widersprechen dir. (Habe grad nichts anderes zum testen da).

Kannst es selber testen.
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <?php
            foreach ($_REQUEST as $key => $val){
                echo "$key => $val <br>\n";
            }
        ?>
        <form method="GET" action="test.php">
            <input type="text" name="dings" value="">
            <?php
                if ($_REQUEST["dings"]=="dongs")
                    echo "<input type=\"submit\" name=\"schlecht\" value=\"nich klicke\">\n";
                        ?>
            <input type="submit" value="Los">
        </form>
    </body>
</html>
Also erst "dongs" ins input schreiben und return drücken, beim zweiten aufruf tipp was du willst.
 
Werbung:
Ich hatte es getestet, sonst hätte ich das nicht behauptet. Keine Ahnung ob ich was falsch gemacht habe, jetzt sitze ich an einem anderem Rechner.

Jetzt wird immer der wert von dem ersten submit Button im Formular gesendet, das ist also der default Button.
 
Also zurück zur Originalfrage.
Gibt es eine Möglichkeit dieses Default-Verhalten zu ändern?
Bei Chrome 5.0.375.99 habe ich das selbe Verhalten.

Als Workaround sorge ich halt dafür, dass ein ungefährlicher Submit am Anfang des Formulares steht, wirkt aber ein bissel wie eine Krücke.


Ach ja, wenn du ein anderes Verhalten beobachtest wäre es hilfreich, wenn du Browser und Version dazuschreibst. Das bringt mehr als ein "das ist nicht so" ;)
 
Ich guck mal morgen, was ich da vorhin getestet hatte.

Du kannst den "ungefährlichen" Button auch mit display:none unsichtbar machen, zumindest hier (FF 3.6, OP 10.60 ubuntu) funktionert das
 
Werbung:
Ich guck mal morgen, was ich da vorhin getestet hatte.

Du kannst den "ungefährlichen" Button auch mit display:none unsichtbar machen, zumindest hier (FF 3.6, OP 10.60 ubuntu) funktionert das

Was babbelst du denn da für einen MIST????

Das funktioniert NICHT!

Getestet mit Lynx 2.8.8dev.2, Elinks 0.12pre5 und W3M 0.5.2 unter Ubuntu 10.4. Und ich bin mir sicher, dass das kein Ubuntu Problem ist. Kann ich gerne mal mit Debian, CentOS, SuSE oder Fedora wiederholen, ach, ne Solaris oder FreeBSD VM find ich bestimmt auch noch irgendwo hier.

Sorry, konnt ich mir nicht verkneifen ;)

Ist klar, das ist valides CSS, das funktioniert in praktisch jedem halbwegs aktuellen grafischen Browser.

Das ändert aber nichts an dem Problem. Selbst in den HTML4.01 specs auf w3.org findet sich nur, dass mehrere submits erlaubt sind und nur die Daten des aktiven submits übermittelt werden. Konnte allerdings nix finden, was einen Rückschluss lässt, welches submit bei nem Return aktiv sein soll....
 
Werbung:
Zurück
Oben