Ich habe ein Formular, das ich über AJAX einreiche.
%Vor%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.
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.
Ich fange an zu denken, dass dies etwas Rails-spezifisch ist?
Probieren Sie disable_with
in der Ansicht für Rails aus 3 und höher:
Für Schienen 2:
%Vor%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.
Von jQuery: Sie können Folgendes tun, um die gewünschte Aktion auszuführen:
%Vor%Ich hoffe, das kann Ihnen helfen
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 ~
Tags und Links ruby-on-rails-3 jquery ruby-on-rails ajax submit