html Formular Submission Unterschied zwischen click (), submit () und manuellen Klick in jquery

8

Ich habe eine jsp-Seite wie folgt:

%Vor%

Wenn ich manuell (d. h. mit der Maus) auf den Button "Gehe zu" klicke, wird das Formular nach dem Anzeigen des Textes "Jetzt wird einreichen" angezeigt; Wenn Sie auf den Button "TestClick" klicken, wird das Formular erfolgreich gesendet, aber der Text "Jetzt wird gestartet" wird nicht angezeigt. Wenn Sie auf den Button "TestSubmit" klicken, erscheint der Text "Now Submit", aber das Formular wird nicht gesendet.

Entgegen meinen Erwartungen funktionieren die Buttons "TestClick" und "TestSubmit" nicht wie die Schaltfläche "Go", wenn beide angeklickt werden. Nach meinem Verständnis sollten die drei Button-Klicks dasselbe tun, das heißt, das Formular abschicken, nachdem der Text "jetzt startend" angezeigt wird. Also meine Frage ist, warum die Ergebnisse der drei Tastenklicks anders sind?

Ich benutze jquery 1.3.2

    
jscoot 20.01.2011, 06:47
quelle

4 Antworten

5

Die zweite Schaltfläche sendet das Formular aufgrund eines Fehlers in jQuery (oder dem DOM) nicht, der dazu führt, dass die Methode submit fehlschlägt, wenn die ID der Übergabeschaltfläche "Senden" lautet. Siehe: Ссылка

    
Richard M 27.01.2011, 22:48
quelle
6

Es sieht so aus, als ob der Event-Handler jQuery submit ignoriert wird, wenn man das Senden des Formulars manuell über $ ('# testform') einstellt. submit ();

Dies sollte im Click-Handler funktionieren:

%Vor%     
David Pean 20.01.2011 19:37
quelle
1

AKTUALISIERT:

  
  1. eigentlich als richardml sagte, das erste Problem, das Sie haben, ist ein jQuery-Bug, so dass zuerst das umbenennen ist id der Vorlage an etwas anderes.

  2. zweites Problem ist die type der test1btn input , die type="submit" sein sollte, um sich wie eine normale Senden-Schaltfläche zu verhalten.

Der Trick besteht darin, den Typ beim Mouse-Hover zu ändern, damit der Code so aussieht:

%Vor%

Der Rest funktioniert wie erwartet.

hoffe diese Hilfe

    
Luca Filosofi 29.01.2011 15:51
quelle
0

Sie sollten stattdessen das Ereignis onsubmit verwenden, um die Funktion auszulösen.

%Vor%

Dies löst foo () aus, wenn Sie das Formular absenden, entweder über die Schaltfläche "Senden" oder über die Methode submit ().

    
Rajiv 21.02.2016 07:05
quelle

Tags und Links