Drücken von "Return" in einem HTML-Formular mit mehreren Submit-Buttons
Stellen wir uns vor, ein HTML-Formular mit zwei submit-buttons. einer von Ihnen befindet sich in der oberen Hälfte der form und tut etwas weniger wichtig. der andere Knopf ist der eigentliche submit-button, der speichert die eingegebenen Daten. dieser Knopf am Ende des Formulars. die beiden Tasten löst den verschiedenen Aktions-urls.
erfahrene Benutzer wie Ihre Formulare senden durch drücken der Taste "enter" oder "return" anstelle von einem Klick auf den entsprechenden button.
leider, der browser sucht nach dem ersten submit-button des jeweiligen Formulars und verwenden Sie diese, um auszuführen, form-submit. da es in meiner form auf die zweite Schaltfläche ist der eigentliche submit-Schaltfläche, ich muss sagen, der browser, um die Verwendung dieser bestimmten Taste (oder die action-url, der verbunden ist mit es).
ich nicht link javascript-Listener, die suchen-Taste gedrückt halten oder sowas. also ich bin auf der Suche nach einem besseren Ansatz für dieses problem. allerdings javascript-oder jquery-Lösungen (ohne keypressed-listerner) sind willkommen.
danken Ihnen sehr für Ihre Hilfe im Voraus.
InformationsquelleAutor der Frage DiegoFrings | 2010-01-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte man, zumindest theoretisch, drei
submit
Tasten in Ihrer form.Taste zwei ist die vorhandene "weniger wichtig" - Taste (von der Mitte der form), die Taste drei ist die bestehende 'ist-senden" - Taste Ihrer bestehenden form.
Button ausgeblendet werden soll (mit CSS
display:none
odervisibility: hidden
) und sollte ausführen genau die gleiche Funktion wie Ihre aktuelle 'ist-senden.' Ich denke, es werden immer noch die erste Schaltfläche zu finden, die vom browser, unabhängig von seiner Sichtbarkeit.Bearbeitet in Reaktion auf die Kommentare:
Einen gültigen Punkt, aber ich machte den Fehler, Prüfung nur im Firefox (3.5.7, Ubuntu 9.10) vor dem posting, in dem die Technik funktionierte1, für beide. Die vollständige xhtml-Datei eingefügt (unten), bildet die Grundlage meiner Prüfung nachträglich für diese Kommentare.
Gibt es mindestens zwei Punkte, die ich extra zu diesem Kommentar. In der Reihenfolge:
Ich Schätze Ihren Kommentar über die tabindex-Eigenschaft, obwohl, das war etwas, was ich nie gab jeglichen Gedanken auf, bei allen.
Tut mir Leid, wenn ich Klang etwas schnippisch, es ist spät, ich bin müde...yadda-yadda; ich habe die Prüfung in den verschiedenen Browsern ist, da ich zurück nach Hause und es scheint, dass Firefox 3.5+ gibt, die das gleiche Verhalten -reporting '- Taste eine' auf beiden Windows XP und Ubuntu 9.10, alle Webkit-Browser (Midori, Epiphany, Safari und Chrome) Versagen und Bericht ' - button zwei.'
Also ist es definitiv ein fail-gute Idee, zu
display: none;
den submit-button. In der Erwägung, dass dievisibility:hidden
zumindest funktioniert.Ich meine, schlagen Sie "enter" ausgelöst, werden die form-submit-Ereignis oder das click-Ereignis des ersten submit-button des Formulars, unabhängig davon, ob das erste reichen war `display: none; "oder" visibility: hidden`.
Bitte beachten Sie, dass meine jQuery-Kenntnisse sind begrenzt, so dass die tests eingesetzt (ich lief erst zu einem Zeitpunkt, zu versuchen und zu verhindern, dass Konflikte auftreten, in der Ausführung, auskommentieren, die ich nicht gleichzeitig ausgeführt werden, beide präsentiert werden-ein, klar, auskommentiert) kann gut sein, unzureichend und nicht repräsentativ.
InformationsquelleAutor der Antwort David Thomas
ändern Sie Ihre erste Schaltfläche, um eine
<input type="button" />
.InformationsquelleAutor der Antwort Lucas
Was bedeutet der erste button? Wenn Sie brauchen nur eine Taste, um schonmal ein js-listener, die nicht senden, verwenden Sie
InformationsquelleAutor der Antwort Erik
Ist es eine option für absolute Positionierung auf Ihre weniger wichtig submit-button und es erscheint, nachdem Sie Ihre primäre submit-button in HTML? So können Sie haben:
Ihre sekundäre submit-button erscheint zuerst auf dem Bildschirm, aber das primäre submit-button Vorrang haben sollte, wenn die EINGABETASTE gedrückt wird.
InformationsquelleAutor der Antwort Wes
InformationsquelleAutor der Antwort dev
Anderen Abhilfe zu schaffen, ist eine zusätzliche nicht-funktionale submit-input-am Anfang die form und verstecken Sie es mit Deckkraft:
Den button gezeichnet wird auf der Seite, wenn auch transparent, so müssen Sie einige Immobilien. Alternativ können Sie auch spielen Sie mit drücken Sie ihn hinter einem anderen element mit z-index oder das rendering außerhalb der Seite, wie andere vorgeschlagen haben, hier vor.
Was gewinnen Sie mit
onclick="return false;"
ist, dass das Formular nicht eingereicht werden, wenn man "Enter" mehr; kein Neuladen der Seite, entweder.InformationsquelleAutor der Antwort gopherIT