Ermitteln, welche Schaltfläche zum Senden ausgewählt wurde

8

Ich weiß, dass diese Frage sehr nach einem Haufen anderer klingt, aber ich schwöre, ich kann nirgendwo die richtige Lösung finden. Ich habe ein Legacy-Formular mit mehreren Übergabeschaltflächen. Wenn auf einen geklickt wird, muss ich ein bisschen clientseitige Validierung durchführen und möglicherweise die Übermittlung stoppen. Wenn auf den anderen geklickt wird, muss ich diese Validierung nicht durchführen.

Was ich finde, ist, dass ich, wenn ich einen .submit() -Handler erstelle, scheinbar nicht darauf zugreifen kann, auf welche Schaltfläche tatsächlich geklickt wurde. Auf der anderen Seite kann ich nicht verhindern, dass das Formular über .click() (oder .preventDefault() ) einreicht, wenn ich das .stopImmediatePropagation() -Ereignis der Schaltfläche erfassen muss.

Hier ist die letzte Iteration des Codes, der versucht, die Schaltflächen .click() handler:

zu verwenden %Vor%

Was fehlt mir hier? There hat eine Möglichkeit, dies zu tun und es scheint, als sollte es ziemlich einfach sein, aber ich werde verdammt sein, wenn ich überhaupt etwas Glück gehabt habe.

Danke.

    
Rob Wilkerson 06.10.2011, 11:45
quelle

3 Antworten

4

Vielleicht hilft das: Ссылка

Im Grunde geht es darum, die Schaltfläche ID im Formular submit () - Handler zu überprüfen.

Ссылка

    
CheeseSucker 06.10.2011, 11:59
quelle
4

Vielleicht so etwas?

Ссылка

%Vor%

Das Hauptproblem bei diesem Code wäre die Browserkompatibilität - ich weiß nicht, ob alle Browser gleich funktionieren, wenn das Klickereignis vor dem Einsenden abgefangen wird. Ich erinnere mich, dass es auf einer Version von IE anders war, vielleicht 7. Aber es ist reparierbar.

    
Przemek 06.10.2011 12:00
quelle
0

@Przemek hat dafür die richtige Antwort und Vorgehensweise.

Ich würde nur hinzufügen, um sicherzustellen, dass Sie Ihre Funktion in $(document).ready(function(){} setzen, wenn Sie eine Formularübermittlung durchführen.

Funktioniert in allen Browsern. Siehe unten für die Lösung, die für mich basierend auf Przemeks Beispiel funktionierte:

%Vor%     
Tim 18.02.2016 22:40
quelle

Tags und Links