Ein Formular auf der 'Enter' - mit jQuery?
Habe ich eine Moor-standard-login-Formular - eine E-Mail-text-Feld, Passwort-Feld und einen submit-button auf einer AIR-Projekt, das mithilfe von HTML/jQuery. Wenn ich getroffen Geben Sie auf dem Formular das ganze Formular die Inhalte verschwinden, aber die form ist nicht eingereicht. Weiß jemand, ob dies ist ein Webkit-Problem (Adobe AIR verwendet Webkit für HTML), oder wenn ich habe verstopfte Dinge?
Habe ich versucht:
$('.input').keypress(function (e) {
if (e.which == 13) {
$('form#login').submit();
}
});
Aber, dass weder gestoppt, die clearing-Verhalten, oder den Antrag eingereicht. Es gibt keine Handlung im Zusammenhang mit der form - könnte das das Problem sein? Kann ich eine javascript-Funktion in die Aktion?
Haben Sie wirklich eine Klasse="Eingang" - Attribut auf Ihrer <input...? Scheint, wie es sein sollte $('input').keypress...
Die Klassen programmgesteuert generiert werden, die von einem CMS. Andere als, die, jedoch, scoping, es zu $('input') würde sich auf jede Eingabe auf der Seite, regarless, ob ich wollte, das Verhalten oder nicht. Sorry, es verletzt Ihre Gefühle.
Empfinden nicht beleidigt in die Beine. Dachte nur es wäre vielleicht ein versehen, die zu dem problem führen. Tragen auf.
FYI: Ihr akzeptiert die Antwort ist nicht ganz korrekt. Siehe meine Antwort unten.
Die Klassen programmgesteuert generiert werden, die von einem CMS. Andere als, die, jedoch, scoping, es zu $('input') würde sich auf jede Eingabe auf der Seite, regarless, ob ich wollte, das Verhalten oder nicht. Sorry, es verletzt Ihre Gefühle.
Empfinden nicht beleidigt in die Beine. Dachte nur es wäre vielleicht ein versehen, die zu dem problem führen. Tragen auf.
FYI: Ihr akzeptiert die Antwort ist nicht ganz korrekt. Siehe meine Antwort unten.
InformationsquelleAutor b. e. hollenbeck | 2009-03-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
HINWEIS: Sie akzeptiert bendewey Antwort, aber es ist falsch mit seiner Beschreibung von e.preventDefault(). Schauen Sie sich diese stackoverflow-Antwort:
event.preventDefault() vs. return false
Im wesentlichen, "return false" ist das gleiche wie der Aufruf
e.preventDefault
unde.stopPropagation()
.Außer, dass bei der Verwendung von jQuery, es ist das gleiche im IE8. und IE7. Und IE6.
Wenn Sie möchten, geben Sie zunächst in den Eingabefeldern legen Sie die "return false;" innerhalb der if-Anweisung.
InformationsquelleAutor NoBrainer
Zusätzlich zu false zurück, als Jason Cohen erwähnt. Sie müssen möglicherweise auch preventDefault
@NoBrainer sagte, das ist falsch:
return false
in einer Veranstaltung verwaltet von jQuery automatisch anrufen e.preventDefault()InformationsquelleAutor bendewey
Weiß nicht, ob es helfen wird, aber Sie können versuchen, die Simulation einer senden-Schaltfläche klicken, statt direkt das Formular abgesendet hat. Ich habe den folgenden code in die Produktion, und es funktioniert gut:
Hinweis: jQuery('#submit').focus() macht die Schaltfläche animiert wird, wenn die EINGABETASTE gedrückt wird.
Arbeiten | Sehen, eine MENGE von Ergebnisse reden, trigger, sendkey, etc, doh, bla..., das ist aber auch das funktioniert nur bis zu mir und wirklich senden ein Klick auf eine Schaltfläche. Nicht submit(). Also, der trick war focus().klicken Sie auf () - Funktionen in secuence. DANKE.
Funktioniert, allerdings musste ich diesen code unter: $(document).bereit(Funktion() {...
InformationsquelleAutor karim79
Zurück
false
um zu verhindern, dass der Tastendruck fortgesetzt wird.InformationsquelleAutor Jason Cohen
Gibt es einen Grund, Sie zu Haken und testen für Sie die enter-Taste?
Konnte nicht fügen Sie einfach eine
Ihrer form und haben es natürlich eingereicht werden, wenn die EINGABETASTE gedrückt wird? Man könnte sogar Haken Sie dann die form
onsubmit
Aktion und rufen eine Validierungs-Funktion aus, wenn Sie wollte...Könnten Sie sogar mit der
onsubmit
als ein test, um zu sehen, wenn das Formular eingereicht wird, aber es wird nicht funktionieren, wenn Sie Anrufform.submit()
.Problem ist, was wenn Sie das tun, ajax-Kram und es ist nicht eine tatsächliche postback an den server, aber Sie wollen das UI zu Verhalten, wie es der Benutzer erwartet?
In der Tat... ich hatte übersehen das ganze
return false;
Sache.InformationsquelleAutor Zack The Human
Hier ist ein Weg, um dies zu tun, wie ein JQuery-plugin (im Falle, Sie wollen die Wiederverwendung der Funktionalität):
Nun, wenn Sie möchten, dekorieren Sie mit dieser Art von Funktionen ist es so einfach:
InformationsquelleAutor bvaughn
Können Sie auch einfach hinzufügen
onsubmit="return false"
zu den Formular-code in die Seite, um zu verhindern, dass das default-Verhalten.Dann Haken (
.bind
oder.live
) des Formularssubmit
Ereignis auf eine Funktion mit jQuery im javascript-Datei.Hier ist ein Beispiel-code, um zu helfen:
HTML
Javascript + jQuery
Diese Funktionsweise ist der 2011-04-13, mit Firefox 4.0 und jQuery 1.4.3
InformationsquelleAutor GERV
Auch zur Erhaltung der Zugänglichkeit haben, sollten Sie verwenden Sie diese, um zu bestimmen, Ihre keycode:
InformationsquelleAutor Logan Serman
Dies ist mein code:
InformationsquelleAutor Hoàng Vũ Tgtt
Nur hinzufügen, für die einfache Umsetzung. Sie können einfach eine form und dann auf den submit-button ausgeblendet:
Beispiel:
und welche version ist Ihr chrome? Getestet habe ich von Laptop zu pc und mein code funktioniert einfach. Versuchen Sie zum download der neuesten chrome, bevor Sie markieren Sie es nach unten meine Antwort.
InformationsquelleAutor Joem Maranan
Ich habe jetzt
Zuerst habe ich Hinzugefügt ein Event-Handler für das submit-button erzeugt einen Fehler für mich.
InformationsquelleAutor faebser
In HTML-codes:
In Js-codes:
meine Antwort haben einige Unterschiede mit anderen.
Wie ist diese Antwort unterscheidet sich von dieser oder dieser?
Ich habe dieses problem und erste Suche auf google nach dieser. Die Seiten, die, sprechen Sie über dieses problem, aber nicht einfach. Wenn ich finde, beste Antwort, die ich beschlossen, teilen Sie diese auf, Die Seiten reden, um Benutzern zu helfen bei der Suche nach diesem, siehe meine Antwort auf einige ähnlich stackoverflow-Seiten.
diese Antwort bezieht sich nicht auf die Frage an alle
InformationsquelleAutor mghhgm
Ich heute herausgefunden das keypress-Ereignis wird nicht ausgelöst, wenn die Taste Enter, so möchten Sie vielleicht zu wechseln, keydown() oder keyup() statt.
Mein test-script:
Die Ausgabe in der Konsole bei der Eingabe "A Geben Sie B" auf der Tastatur:
Sehen Sie in der zweiten Sequenz das 'keypress' fehlt, aber keydown-und keyup-register '13' als gedrückt/losgelassen.
Als pro jQuery-Dokumentation über die Funktion keypress():
Getestet auf IE11 und FF61 auf Server 2012 R2
InformationsquelleAutor Piemol
Versuchen Sie dies:
InformationsquelleAutor nigitza