Versuchen Sie, selbst eine Ajax-Anfrage zu machen:
%Vor%Auf diese Weise führen Sie eine POST-Anfrage mit den Formulardaten durch und führen die Antwort als Skript aus.
Ich benutze Rails UJS. Ich habe ein Formular-Setup, um eine Fernübertragung wie folgt durchzuführen:
%Vor%Ich versuche einen Weg zu finden, dieses Formular von einer JavaScript-Funktion zu senden. Ich habe es versucht:
%Vor%aber das Problem dabei ist, dass es das Formular ohne Remote sendet, es auf dem Server veröffentlicht und aktualisiert die Seite. Irgendeine Idee warum das ist? Gibt es eine andere Möglichkeit, ein Remote-Formular zu senden?
Danke
Vielleicht wird für die Benutzer, die jquery-ujs
verwenden (standardmäßig Rails 5.0 und niedriger), da Mikhail bereits beantwortet wurde, das benutzerdefinierte jquery-Ereignis ausgelöst, d. h .:
Für diejenigen, die 2017 auf diese Frage gestoßen sind und Rails 5.1 verwenden, wird die Antwort anders lauten. Rails 5.1 hat jquery
als Abhängigkeit abgelegt und daher jquery-ujs
durch eine komplett neu geschriebene rails-ujs
ersetzt. Siehe: Ссылка
Als solches müssen Sie das richtige CustomEvent-Objekt auslösen in rails-ujs:
Im Moment gibt es keine veröffentlichte / empfohlene Vorgehensweise in der Dokumentation (a.k.a. RailsGuides), aber hier sind einige Optionen, die Sie verwenden könnten, wenn Sie sich den Quellcode von Rails ansehen:
Verwenden Sie Rails.fire
function:
Sie könnten auch programmatisch den Rails.handleRemote
-Handler aufrufen (den, der tatsächlich Formulare mit data-remote=true
über XHR sendet:
Ich bevorzuge Option 1, weil es nur ein Wrapper ist, der neuere Web-API-Methoden verwendet, d. h. ein CustomEvent
erstellt und es an das EventTarget
via dispatchEvent
weiterleitet.
Versuchen Sie, das Ereignis %code% auszulösen:
%Vor%Vielleicht wird für die Benutzer, die %code% verwenden (standardmäßig Rails 5.0 und niedriger), da Mikhail bereits beantwortet wurde, das benutzerdefinierte jquery-Ereignis ausgelöst, d. h .:
%Vor%Für diejenigen, die 2017 auf diese Frage gestoßen sind und Rails 5.1 verwenden, wird die Antwort anders lauten. Rails 5.1 hat %code% als Abhängigkeit abgelegt und daher %code% durch eine komplett neu geschriebene %code% ersetzt. Siehe: Ссылка
Als solches müssen Sie das richtige CustomEvent-Objekt auslösen in rails-ujs:
Im Moment gibt es keine veröffentlichte / empfohlene Vorgehensweise in der Dokumentation (a.k.a. RailsGuides), aber hier sind einige Optionen, die Sie verwenden könnten, wenn Sie sich den Quellcode von Rails ansehen:
Verwenden Sie %code% function:
%Vor%Sie könnten auch programmatisch den %code% -Handler aufrufen (den, der tatsächlich Formulare mit %code% über XHR sendet:
%Vor%Ich bevorzuge Option 1, weil es nur ein Wrapper ist, der neuere Web-API-Methoden verwendet, d. h. ein %code% erstellt und es an das %code% via %code% weiterleitet.
Ich benutze Rails UJS. Ich habe ein Formular-Setup, um eine Fernübertragung wie folgt durchzuführen:
%Vor%Ich versuche einen Weg zu finden, dieses Formular von einer JavaScript-Funktion zu senden. Ich habe es versucht:
%Vor%aber das Problem dabei ist, dass es das Formular ohne Remote sendet, es auf dem Server veröffentlicht und aktualisiert die Seite. Irgendeine Idee warum das ist? Gibt es eine andere Möglichkeit, ein Remote-Formular zu senden?
Danke
Versuchen Sie, selbst eine Ajax-Anfrage zu machen:
%Vor%Auf diese Weise führen Sie eine POST-Anfrage mit den Formulardaten durch und führen die Antwort als Skript aus.
Tags und Links ruby-on-rails-3 jquery ruby-on-rails ujs