Geben Sie das Presseereignis in JavaScript ein
Ich habe eine form
mit zwei Textfeldern, eins wählen Sie drop-down-und einem radio-button. Wenn die enter - Taste gedrückt wird, will ich rufen eine javascript-Funktion (User defined), aber wenn ich drücken Sie ihn, das Formular abgeschickt wird.
Wie kann ich verhindern, dass die form
wird eingereicht, wenn das geben Sie - Taste gedrückt wird?
InformationsquelleAutor der Frage Shyju | 2009-05-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok, also stellen Sie sich vor, Sie haben die folgende textbox in einem Formular:
Damit laufen einige "user defined" - Skript aus diesem Textfeld, wenn Sie die enter-Taste gedrückt wird, und nicht haben Sie das Formular Absenden, haben wir hier einige Probe code. Bitte beachten Sie, dass diese Funktion keinen Fehler zu überprüfen und die meisten wahrscheinlich nur im IE funktioniert. Dieses Recht müssen Sie eine stabilere Lösung, aber Sie erhalten die Allgemeine Idee.
Rücksendung wird der Wert der Funktion wird der alert-der event-handler nicht zur Blase die Veranstaltung weiter, und wird verhindern, dass das keypress-Ereignis bearbeitet weiter.
HINWEIS:
Es ist darauf hingewiesen worden, dass
keyCode
ist jetzt veraltet. Die nächste beste alternativewhich
hat auch veraltet.Leider ist der bevorzugte standard
key
die ist weit verbreitet, unterstützt durch moderne Browser hat einige verdächtiges Verhalten im IE und Edge. Alles, was älter als IE11 bräuchte noch ein polyfill.Außerdem, während die deprecated-Warnung ist ziemlich ominös über
keyCode
undwhich
entfernen diese stellen einen massiven Bruch ändern, untold-Nummern von legacy-websites. Aus diesem Grund es ist unwahrscheinlich, dass Sie gehen, überall jederzeit schnell.InformationsquelleAutor der Antwort Josh
Verwenden beide
event.which
undevent.keyCode
:InformationsquelleAutor der Antwort Agiagnoc
Wenn Sie mit jQuery:
InformationsquelleAutor der Antwort cowboy
Veranstaltung.key === "Enter"
Mehr die jüngsten und viel sauberer: verwenden Sie
event.key
. Nicht mehr beliebig viele codes!Mozilla Docs
Unterstützte Browser
InformationsquelleAutor der Antwort Gibolt
Überschreiben der
onsubmit
Wirkung der form zu sein, rufen Sie Ihre Funktion, und fügen Sie false zurückgeben, nach dem es, sprich:InformationsquelleAutor der Antwort rpkelly
Erkennen Enter-Taste gedrückt gesamte Dokument:
http://jsfiddle.net/umerqureshi/dcjsa08n/3/
InformationsquelleAutor der Antwort umer
Einen reagieren js-Lösung
InformationsquelleAutor der Antwort caffeinescript
Folgenden code hinzufügen listener für
ENTER
Taste auf der gesamten Seite.Dies kann sehr nützlich sein, Bildschirme mit single-Action-button z.B. Login, Registrierung, Abgabe etc.
Getestet auf allen Browsern.
InformationsquelleAutor der Antwort Hitesh Sahu
Eine jQuery Lösung.
Ich kam hierher auf der Suche nach einem Weg, um die Verzögerung der übermittlung der form erst nach dem blur-event auf den text Eingang abgefeuert wurden.
Wäre schön wenn man eine allgemeinere version, feuerte alle delayed events anstatt nur das Formular Absenden.
InformationsquelleAutor der Antwort chim
Ist ein viel einfacher und effektiver Weg, aus meiner Sicht sein sollte :
InformationsquelleAutor der Antwort Thanos
Typoskript mit, und vermeiden Sie Vielfache Anrufe auf die Funktion
InformationsquelleAutor der Antwort Wagner Pereira
InformationsquelleAutor der Antwort Mizanur Rahaman
wenn Sie wollen, es zu tun mit purly java-script hier ein Beispiel, dass die Arbeit perfekt
Sagen wir: dies ist die html-Datei
in Ihrem popup.js Datei nur verwenden Sie diese Funktion,
InformationsquelleAutor der Antwort ZINA TAKLIT