Verhindern Sie doppelte Submits in einem Rails AJAX-Formular

8

Was ich habe:

Ich habe ein Formular, das ich über AJAX einreiche.

%Vor%

Was ich will:

Ich möchte doppelte Anmeldungen verhindern. Da das Formular nur verschwindet, wenn die Anforderung erfolgreich abgeschlossen wurde, können Benutzer auf die Schaltfläche zum Senden klicken, solange die Datenbank die Daten noch nicht fertig geschrieben hat. Das will ich natürlich nicht.

Was ich versucht habe:

Ich habe versucht, dies zum Senden Button hinzuzufügen - aber es funktioniert nicht. Die Schaltfläche wird deaktiviert, aber es werden keine Daten gesendet.

%Vor%

Ich habe auch versucht, der Übermittlungsschaltfläche einen Klick-Handler hinzuzufügen. Dies hat den gleichen Effekt wie zuvor. Es werden keine Daten an die Steuerung gesendet, aber die Schaltfläche ist deaktiviert.

%Vor%

Auch dasselbe versucht, ohne false zurückzugeben. Nichts passiert, nachdem die Schaltfläche deaktiviert wurde.

%Vor%

Ich fange an zu denken, dass dies etwas Rails-spezifisch ist?

    
slhck 16.07.2012, 13:52
quelle

4 Antworten

19

Probieren Sie disable_with in der Ansicht für Rails aus 3 und höher:

%Vor%

Für Schienen 2:

%Vor%     
abhas 16.07.2012, 14:20
quelle
2

Das Deaktivieren der Schaltfläche sollte gut funktionieren.

Deaktivieren Sie einfach die Schaltfläche in der gleichen Funktion, in der Sie Ihren Ajax-Aufruf ausführen.

%Vor%

Ab jQuery 1.6 sollten Sie jedoch prop() anstelle von attr() verwenden.

Bearbeiten:

Als Antwort auf Ihren Kommentar versuchen Sie% return false; wegzulassen, damit Sie die Ausführung des Formsubmit über Rails nicht unterbrechen.

%Vor%     
Christoph 16.07.2012 13:57
quelle
1

Von jQuery: Sie können Folgendes tun, um die gewünschte Aktion auszuführen:

%Vor%

Ich hoffe, das kann Ihnen helfen

    
Alaa Badran 16.07.2012 14:01
quelle
0

alles,   Nachdem Sie Ihre Ideen überprüft und in meinem Team gesprochen haben, haben wir eine Lösung gefunden:

%Vor%

Wenn es Ihnen gefällt, werde ich es als kleines Plugin ~ hinzufügen Danke für deinen Vorschlag ~

    
fantaxy025025 23.11.2013 11:44
quelle