Wie kann ich bei Verwendung von preventDefault () ein Formular per Knopfdruck übermitteln?

8

Ich verwende jQuerys .preventDefault() , um das Senden von Formularen zu verhindern, wenn Benutzer auf die [ENTER] -Taste klicken. Das Problem ist, dass es auch das Senden des Formulars stoppt, wenn ich auf die Senden-Schaltfläche klicke.

Ich sehe, es gibt viele Threads auf Stackoverflow in Bezug auf .preventDefault() , aber keine davon adressiert mein Problem.

Hier ist der Code, an dem ich gerade arbeite.

%Vor%

Kann mir bitte jemand sagen, was er für das Absenden des Formulars auf Knopfdruck eingibt?

    
Steven 20.07.2012, 14:34
quelle

5 Antworten

25

Löse das Submit-Ereignis auf dem DOM-Knoten und nicht ein jQuery-Objekt aus.

%Vor%

oder

%Vor%

oder

%Vor%

Dadurch wird das jQuery-gebundene Ereignis umgangen, sodass das Formular normal übergeben werden kann.

    
Kevin B 20.07.2012, 14:44
quelle
5

Ändern Sie die Schaltfläche zum Senden auf eine normale Schaltfläche und bearbeiten Sie das Senden in seinem onClick-Ereignis.

Soweit ich weiß, gibt es keine Möglichkeit zu sagen, ob das Formular mit der Eingabetaste oder der Absenden-Schaltfläche gesendet wurde.

    
Hans Hohenfeld 20.07.2012 14:38
quelle
5

Ersetzen Sie dies:

%Vor%

mit diesem:

%Vor%

FIDDLE

Dadurch wird verhindert, dass das Formular gesendet wird, wenn die Eingabetaste gedrückt wird, da dies die Standardaktion des Schlüssels verhindert. Das Formular wird jedoch beim Klicken normal gesendet.

    
adeneo 20.07.2012 14:42
quelle
4

Sie müssen

verwenden %Vor%     
Romain 20.07.2012 14:39
quelle
0

Ok, zuerst e.preventDefault(); es ist kein Jquery Element, es ist eine Methode von Javascript, jetzt was es wahr ist es ist, wenn du diese Methode hinzufügst vermeidest du das Submit das Ereignis, was du jetzt tun könntest ist das Formular von Ajax etwas zu senden wie das

%Vor%     
Jorge 20.07.2012 14:41
quelle

Tags und Links