mmofacts.com

Form submit on Enter

gepostet vor 19 Jahre von BuschnicK
Hi,

ich habe eine Form mit nem Texteingabefeld und diversen submit buttons. Wenn man in dem Textfeld Enter drückt wird die Form automatisch submitted (FireFox default Verhalten). Leider wird dabei immer der erste submit button mit übermittelt als Name->Value Paar. Ich möchte aber einen anderen button haben für diese Aktion.

Ich kann die Reihenfolge der Buttons aus Design Gründen nicht ändern, also ist das keine Lösung.

Ich habe versucht einen unsichtbaren image button (transparent 1x1 png) als ersten submit Button in die Form einzufügen. Das funktioniert beinahe: Beim Enter Druck wird dieser button mit submitted, jedoch ist der leider nicht komplett unsichtbar, sondern führt zu Verschiebungen in meinem Layout.

Die Frage ist also: Wie kann ich den submit button für submit-on-enter auswählen? Oder wie kann ich herausfinden, dass per enter submitted wurde?

Wie geht ihr mit dem Problem um?

mfG,
Sören
gepostet vor 19 Jahre von MannaZ
was ist mit style="visibility: hidden; display: none" - oder wird er dann nichtmehr als aktiv erkannt?
gepostet vor 19 Jahre von The_Alien
Man kann über Javascript (onload oder onkey je nach dem wo und wie) einen Button "anvesieren". Wie genau das geht weiß ich nicht da ich unsere JS Scripte nicht erstelle und unser JS Progger im Urlaub ist.
gepostet vor 19 Jahre von BuschnicK
Ich habe MannaZ Lösung ausprobiert und sie funktioniert hervorragend - danke!

Sieht bei mir jetzt so aus:
.hidden

{
visibility: hidden;
display: none;
}

....




Es wird immer der erste submit button der Form genutzt beim Druck auf Enter. Bei mir war das ein Problem, weil der erste button "Zurück" ist ;-)

mfG,

Sören
gepostet vor 19 Jahre von Crafty-Catcher
Das wäre aber mit dem tabindex schöner zu lösen
gepostet vor 19 Jahre von BuschnicK
Original von Crafty-Catcher
Das wäre aber mit dem tabindex schöner zu lösen


Das mag wohl sein, nur hatte ich gelesen, dass die Browser in ihrem Enter-Submit Verhalten sehr unterschiedlich seien und meine jetzige Lösung die sicherste ist.

Ausserdem hat der Tabindex Nebenwirkungen, die in diesem Falle sehr unschön wären: Der Zurück Button ist der erste, also sollte er auch TabIndex 0 haben. Damit Deine Lösung funktioniert hätte er das nicht mehr und der User hüpft per Tab wild durch das Formular.

mfG,
Sören
gepostet vor 19 Jahre von knalli
Mehrere Submits in einem Forum? Ist das überhaupt gut? Oder konform?

Bei "Textfeld-Enterdrücken" sei aber gesagt, das dort ein Fehlerverhalten lauert, was mir beim Firefox (zumindestens in der damaligen Version, war vor ca einem halben Jahr) auffiel:

Beim Internet Explorer konnte man ein Formular aus einem Textfeld + Submit aufstellen, eine Eingabe ins das Textfeld + Drücken auf den Submit war äquivalent mit dem Enter-Drücken, wenn wir davon ausgehen, wir fragen den $_POST['submitname'] ab. Beim Firefox wurde jedoch beim Enterdrücken der Submit NICHT mitversendet, womit ich zuerst einige Probleme hatte. Gelöst habe ich das durch ein HiddenField, was de fakto auch mir persönlich mehr Namensfreiheiten zulässt.
gepostet vor 19 Jahre von BuschnicK
Original von knalli
Mehrere Submits in einem Forum? Ist das überhaupt gut? Oder konform?


Browser coverage for multiple input type=submit is excellent, in accordance with HTML specifications, which have been sufficiently stable since HTML2.0/RFC1866.

von:
ppewww.ph.gla.ac.uk/~flavell/www/trysub.html

Und ja, es ist nicht nur konform, sondern auch gut. Es gibt doch oft mehrere Möglichkeiten mit der Eingabe zu verfahren. Beispielsweise eine Liste von Radiobuttons, die Gebäude symbolisieren. Markiere eines und wähle "Abreissen", "Ausbauen" etc. Standard konform und völlig logisches User-Interface IMHO.

mfG,
Sören
gepostet vor 19 Jahre von knalli
Options sind aber jetzt keine Submits..?
gepostet vor 19 Jahre von BuschnicK
Sicher nicht. Hab ich ja auch nicht gesagt ;-) Die beiden submits in meinem Beispiel wären dann "Abreissen" und "Ausbauen".

mfG,
Sören
gepostet vor 19 Jahre von BLUESCREEN
Original von MannaZ
style="visibility: hidden; display: none"

Dafür kriegst du den Unnötige CSS-Eigenschaften-Award

Wer "display:none" hat braucht kein "visibility:hidden" mehr, da das Element eh nicht angezeigt wird.
gepostet vor 19 Jahre von knalli
Schon mal in der Praxis ausprobiert?

Auf diese Diskussion antworten