Wie erhalte ich das onSubmit-Ereignis für ein Formular?

8

Ich möchte wissen, wie man das onsubmit -Ereignis von einem Formular abholt, um eine Formvalidierung durchzuführen, weil ich nicht direkt darauf zugreifen kann. (Ich schreibe ein Wordpress-Plugin für Kommentare, also habe keinen direkten Zugriff auf das Formular-Tag oder den Absenden-Button.)

Ich war so frustriert, dies für mein Plugin zu tun, dass ich unten eine Hello World-Version geschrieben habe. Ich möchte, dass die Warnung "Hello World" angezeigt wird, wenn ich die Seite lade, und die Benachrichtigung "Formular gesendet", wenn ich auf die Schaltfläche zum Senden klicke. Stattdessen werden beide Popups angezeigt, wenn die Seite geladen wird.

Hier ist mein Code:

%Vor%     
AGE 02.04.2009, 15:49
quelle

3 Antworten

12

Ändern Sie dies:

%Vor%

dazu:

%Vor%

Wenn Sie am Ende einer Funktion Klammern hinzufügen, führen Sie diese Funktion aus. Wenn Sie eine Funktion zuweisen (oder als Parameter an eine andere Funktion übergeben), müssen Sie die Klammern weglassen, da auf diese Weise ein Funktionszeiger in JavaScript abgerufen werden kann.

Bearbeiten: Sie müssen auch die Deklaration der doMapping -Funktion über die Zuweisung dieser Funktion zum onsubmit-Ereignis wie folgt verschieben (good catch tvanfosson!):

%Vor%

Wenn jedoch die Funktion doMapping an anderer Stelle nicht verwendet wird, können Sie die Funktion doMapping als anonyme Funktion wie folgt deklarieren:

%Vor%

das scheint mir ein bisschen sauberer zu sein.

    
Andrew Hare 02.04.2009 15:51
quelle
8

Verwenden von jQuery.

%Vor%     
tvanfosson 02.04.2009 15:54
quelle
0

Danke! Eigentlich habe ich es auf andere Weise gelöst, indem ich sowohl den Vorschlag von Andrew als auch das window.onload-Ereignis verwendet habe - ich denke, das Problem lag teilweise daran, dass das Element nicht wirklich geladen wurde.

%Vor%     
Dan 02.04.2009 16:07
quelle

Tags und Links